Как исключить пользователей, у которых есть записи только с покупкой car?

Есть такой SQL(из Django)-запрос:

SELECT "id", "name" 
FROM "polls_client" 
INNER JOIN "polls_purchases" ON ("id" = "client_id") 
WHERE "polls_purchases"."product" IN (car, bike)

Надо убрать пользователей, у которых есть записи о покупке car и нет bike. Как это сделать?


Ответы (1 шт):

Автор решения: Akina
SELECT "polls_client"."id", "polls_client"."name" 
FROM "polls_client" 
INNER JOIN "polls_purchases" ON ("polls_client"."id" = "polls_purchases"."client_id") 
WHERE "polls_purchases"."product" IN (car, bike)
GROUP BY "polls_client"."id", "polls_client"."name" 
HAVING COUNT(DISTINCT "polls_purchases"."product") = 1
→ Ссылка