这是一个花店的数据表,看起来像
CustomerID Flower
John peony
John lily
John Lotus
Mary peony
Mary lily
Mary chrysanthemum
Lisa chrysanthemum
Lisa peony
Lisa kapok
enter code here
我想找到那些购买相同n花的客户ID。例如,在上表中,对于牡丹和百合,购买它们的顾客(n = 2,对于这种情况)是约翰和玛丽。
我无法找出执行上述查询的SQL语句。请帮忙。 感谢
答案 0 :(得分:0)
答案 1 :(得分:0)
自我加入怎么样?
SELECT
y.CustomerID
FROM
YourTable y
JOIN
YourTable y2
ON
y.CustomerID = y2.CustomerId
WHERE
y.Flower = "Lily"
AND
y2.Flower = "Lotus"
答案 2 :(得分:0)
自己加入桌子。
SELECT a.CustomerID, b.CustomerID, a.Flower FROM flowertable a, flowertable b WHERE a.Flower = b.Flower
答案 3 :(得分:0)
你需要这样的东西
select distinct(CustomerID) from mytable
where flower in
(select distinct(flower) from mytable group by flower having count(flower) = 2)
您可以将 2 替换为您想要的任何数字!
答案 4 :(得分:0)
我会尝试一个只报告有多个不同购买者的鲜花的存在子句:
select a.customerid, a.flower
from yourtable a
where exists
(select 'x'
from yourtable b
where b.customerid <> a.customerid
and b.flower = a.flower)