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
– выбираем только те классы, в которых студентов нет.
✅ Готово! 🚀