SQL - Найти покупателей, которые купили все товары - PullRequest
0 голосов
/ 17 апреля 2020

Предположим, у меня есть 2 таблицы:

A: C_ID, P_Id
B: P_ID

Я хочу найти все C_ID, которые купили все продукты в B (в основном все P_ID в B).

Можете ли вы проверить, правильно ли указано ниже? Любые альтернативы, которые более эффективны / проще?

SELECT A.C_ID
FROM A
JOIN B ON A.P_iD = B.P_ID
GROUP BY A.C_ID
HAVING COUNT(DISTINCT A.P_ID) >= (SELECT COUNT(DISTINCT P_ID) FROM B)

Спасибо!

1 Ответ

0 голосов
/ 17 апреля 2020

следующий запрос работает с MySQL и SQL сервером.

Вы можете сделать это без JOIN

select 
    c_id
from tableA 
group by 
    c_id
having count(distinct p_id) = (select count(*) from tableB)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...