-- Вывести авторов, у которых нет книг.

Используйте NOT EXISTS для авторов, которым не соответствует ни одна книга. Для соавторства проверяйте таблицу связи, а не только поле в books.

Короткий ответ

Что ответить на собеседовании

Используйте NOT EXISTS для авторов, которым не соответствует ни одна книга. Для соавторства проверяйте таблицу связи, а не только поле в books.

Подробный разбор

Ответ с пояснениями

Используйте NOT EXISTS для авторов, которым не соответствует ни одна книга. Для соавторства проверяйте таблицу связи, а не только поле в books.

Для схемы books(id, author_id):

SELECT a.id, a.name
FROM authors a
WHERE NOT EXISTS (
    SELECT 1 FROM books b WHERE b.author_id = a.id
);

Если используется book_authors(book_id, author_id), подзапрос должен искать связь по ba.author_id = a.id. NOT EXISTS корректно выражает отсутствие совпадений и не имеет ловушки NOT IN с NULL в подзапросе. Названия таблиц здесь примерные, так как исходная схема не приложена.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее