💡Совет дня:
В SQL предикат EXISTS — мощный инструмент для проверки наличия строк в подзапросе и фильтрации записей по этому признаку. Он возвращает TRUE, если подзапрос возвращает хотя бы одну строку, и FALSE, если строк нет. Важно, что EXISTS работает эффективно, особенно в коррелирующих подзапросах, где подзапрос зависит от каждой строки основного запроса.
Вот примеры:
Найти производителей ноутбуков, которые также выпускают принтеры:
SELECT DISTINCT maker FROM Product AS lap_product WHERE type = 'laptop' AND EXISTS (SELECT maker FROM Product WHERE type = 'printer' AND maker = lap_product.maker);
Найти производителей ноутбуков, которые не производят принтеры:
SELECT DISTINCT maker FROM Product AS lap_product WHERE type = 'laptop' AND NOT EXISTS (SELECT maker FROM Product WHERE type = 'printer' AND maker = lap_product.maker);
Используйте EXISTS и NOT EXISTS для эффективной проверки пересечений и отсутствий между таблицами. Это поможет писать оптимизированные и понятные запросы.
Запомните, даже самый спокойный медведь умеет рычать, когда надо. Берегите голову, берегите данные — и пусть в вашем дне будет немного тишины, ясности и добрых переменных.