如何折叠这个嵌套的MySQL查询?

时间:2011-09-15 21:54:41

标签: mysql collapse

SELECT num, COUNT(num) AS amt
FROM table
WHERE num IN (
    SELECT num
    FROM table
    WHERE id IN (1,2,3))
GROUP BY num
HAVING amt > 1

另外,我怎样才能获得

  

'777'=> '2'

..而不是

  

'num'=> '777'
  'amt'=> '2'

结果?

感谢

1 个答案:

答案 0 :(得分:3)

您无法对聚合列执行where,您必须使用having

SELECT t1.num, 
       COUNT(t1.num) AS amt 
FROM `table` t1
INNER JOIN `table` t2 ON (t1.num = t2.num)
WHERE t2.id IN (1,2,3)
GROUP BY t1.num
HAVING amt > 1