Здравствуйте, у меня есть 3 таблицы:
number:
- id
- country
buy_number:
- id
- numberId
- serviceId
service:
- id
- name
Нужно написать запрос, с помощью которого я получу список не сервисов(service.name) и стран(number. country). Но сервисы нужно получить только те, которые еще не проданы(не находятся в таблице buy_number).
Я смог написать только так, я получаю список стран, для номеров которых есть еще не проданы сервисы:
SELECT
pn.country
FROM number pn
LEFT JOIN buy_number bn on pn.id = bn."numberId"
LEFT JOIN service s on s.id = bn."serviceId"
GROUP BY pn.country
HAVING COUNT(DISTINCT bn."serviceId") < (SELECT COUNT(id) from service)
Проверку есть ли еще не проданы сервисы для номера или нет я делаю по условию в HAVING, если количество проданных сервисов для номера меньше чем всего сервисов есть в таблице service, то значит у данного номера есть еще свободные сервисы.
Нужно как-то дописать этот запрос, что бы я получал не только страны от номеров где есть не проданы сервисы, но и названия этих не проданы сервисов.
Спасибо!