无法编写正确的mysql查询(COUNT)

时间:2013-03-23 23:38:00

标签: mysql database

我有以下mysql表:

    Person   Car      Color
     ------------------------
     1       Audi     Blue
     2       BMW      Red
     3       Honda    Blue
     4       Audi     Red
     5       Audi     Yellow
     6       Audi     Blue

我正在尝试选择以下内容:

拥有奥迪的人及其颜色在每个人身上发现不到3次。

结果应该是第4人和第4人。 5。

我尝试了以下查询,但我没有得到预期的结果:

SELECT Person FROM CarTable
WHERE Car = "Audi"
GROUP BY Color
HAVING COUNT(*) < 3

实现我正在做的事情的正确查询是什么?

2 个答案:

答案 0 :(得分:1)

SELECT Person
FROM CarTable t1
JOIN (SELECT color, COUNT(*) c
      FROM CarTable
      GROUP BY color
      HAVING c < 3) t2
USING (color)

答案 1 :(得分:1)

下面是一个使用首先标识颜色的子查询的查询

select person 
from cars 
where car='Audi' 
      and color in (select color 
                    from cars 
                    group by color 
                    having count(color) < 3);