怎么做这个查询

时间:2010-10-04 11:21:30

标签: mysql

这是一个花店的数据表,看起来像

 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语句。请帮忙。 感谢

5 个答案:

答案 0 :(得分:0)

从[yourtable]选择客户ID,Flower,其中Flower ='peony'或'lily'

你想要它是动态的吗?

然后可能使用变量创建存储过程。有关sp的here

的更多信息

答案 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)