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'
结果?
感谢
答案 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