25. Группы без услуг #
Условие задачи:
📌 Есть таблицы:
- Services (
id
,name
,cost
,price
,group_id
) - Groups (
id
,name
)
Необходимо вывести названия групп, в которых нет ни одной услуги.
Спойлеры к решению
Подсказки
💡 Используйте LEFT JOIN между
💡 Альтернативно, примените NOT EXISTS с подзапросом, проверяющим отсутствие услуг в группе.
Groups
и Services
, а в WHERE
проверяйте NULL
в полях Services
.💡 Альтернативно, примените NOT EXISTS с подзапросом, проверяющим отсутствие услуг в группе.
Решение
-- Решение 1: LEFT JOIN + фильтрация по NULL
SELECT g.name
FROM Groups g
LEFT JOIN Services s ON g.id = s.group_id
WHERE s.id IS NULL;
-- Решение 2: NOT EXISTS
SELECT g.name
FROM Groups g
WHERE NOT EXISTS (
SELECT 1
FROM Services s
WHERE s.group_id = g.id
);