假设我有2张桌子:
A: C_ID, P_Id
B: P_ID
我想找到购买B中所有产品的所有C_ID(基本上是B中的所有P_ID)。
您可以检查以下是否正确?还有其他更有效/更容易的选择吗?
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)
谢谢!
答案 0 :(得分:1)
以下查询可与MySQL和SQL Server一起使用。
您可以在没有JOIN
select
c_id
from tableA
group by
c_id
having count(distinct p_id) = (select count(*) from tableB)