Используйте LEFT JOIN от сотрудников к кошкам и оставьте строки, где у присоединённой кошки нет идентификатора. Это anti-join: выбираются сотрудники без единого совпадения.
SQL-задача: выбрать сотрудников, у которых нет кошек, используя JOIN.
Используйте LEFT JOIN от сотрудников к кошкам и оставьте строки, где у присоединённой кошки нет идентификатора. Это anti-join: выбираются сотрудники без единого совпадения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Используйте LEFT JOIN от сотрудников к кошкам и оставьте строки, где у присоединённой кошки нет идентификатора. Это anti-join: выбираются сотрудники без единого совпадения.
При условной схеме employees(id, name) и cats(id, employee_id), где cats.id не NULL:
SELECT e.id, e.name
FROM employees AS e
LEFT JOIN cats AS c ON c.employee_id = e.id
WHERE c.id IS NULL;
Реальные имена таблиц и связи нужно подставить из схемы. Если хранится общая таблица животных, условие вида animal_type = 'cat' включают в ON, иначе можно ошибочно исключить сотрудников с другими животными. DISTINCT для такой проверки обычно не нужен.