2011-08-23 99 views
0

有没有办法展开/获取GROUP BYHAVING查询的所有记录?展开GROUP BY和HAVING结果集

例如,

SELECT Column1, Column2, Column3, Count(*) as Count FROM table_name 
GROUP BY Column1, Column2, Column3 
HAVING Count > '2' 

是否有更简单的方式来获得所有的记录,而不是在结果集中去,并为每个记录做SELECT * FROM table_name WHERE Column1 = 'this' AND Column2 = 'that' AND Column3 = 'more'

如果由于mysql或其他限制无法完成,是否还有其他方法可以获取上述query的所有数据?

通过扩大/得到所有的记录,我的意思是如果结果集是

Value1 Value2 Value3 4 

我希望能够得到所有4条记录。

+1

“扩展/获取所有记录”是什么意思? – Jacob

+0

他试图解释 –

回答

4

你的意思是这样的:

SELECT a.*, b.Count 
FROM table_name AS a 
INNER JOIN (
    SELECT Column1, Column2, Column3, Count(*) as Count FROM table_name 
    GROUP BY Column1, Column2, Column3 
    HAVING Count > '2' 
) b 
ON a.Column1 = b.Column1 AND a.Column2 = b.Column2 AND a.Column3 = b.Column3 

这基本上就是你在你的问题,但在JOIN描述。