Task Livecoding SQL Empty Classes

7. Вывести id классов, у которых нет ни одного студента (без подзапросов)? #

"Есть 2 таблицы student и class
student:
id - автоинкрементный первичный ключ,
class_id - id класса в котором числится студент
class:
id - автоинкрементный первичный ключ
Нужно написать запрос для вывода id классов,
у которых нет ни одного студента еще.
Ограничения: Запрос надо написать без использования подзапросов."
Спойлеры к решению
Подсказки
🎯 Нужно выбрать классы, в которых нет студентов.
🔗 Таблицы class и student связаны через class_id.
🛑 Важно отфильтровать те классы, у которых student.id IS NULL.
📊 Используем LEFT JOIN, чтобы увидеть классы без соответствий в student.
Решение
SELECT c.id 
FROM class c
LEFT JOIN student s ON c.id = s.class_id
WHERE s.id IS NULL;

📌 Объяснение:

  • LEFT JOIN – соединяет все классы и подставляет NULL в s.id, если студентов нет.
  • WHERE s.id IS NULL – выбираем только те классы, в которых студентов нет.

Готово! 🚀