Используйте NOT EXISTS для отбора каналов, у которых нет связанной передачи. Имена таблиц и полей ниже условные, поскольку схема в вопросе не приведена.
-- Напишите запрос, который возвращает каналы, у которых 0 телепередач
Используйте NOT EXISTS для отбора каналов, у которых нет связанной передачи. Имена таблиц и полей ниже условные, поскольку схема в вопросе не приведена.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Используйте NOT EXISTS для отбора каналов, у которых нет связанной передачи. Имена таблиц и полей ниже условные, поскольку схема в вопросе не приведена.
SELECT c.*
FROM channels AS c
WHERE NOT EXISTS (
SELECT 1
FROM telecasts AS t
WHERE t.channel_id = c.id
);
Альтернатива — LEFT JOIN с проверкой NULL по непустому идентификатору передачи. Индекс telecasts(channel_id) может ускорить проверку. NOT EXISTS не страдает от ловушки NULL, характерной для некоторых вариантов NOT IN.