Mysql如何在WHERE语句中使用来自连接表的COUNT值行?

时间:2010-10-23 10:57:40

标签: mysql mysql-error-1111

就像那样:

COUNT(i.t_1) AS total_images
WHERE total_images > 2

引发错误:

Unknown column "total_images" in where clause

如果这样:

WHERE COUNT(i.t_1) > 2

引发错误:

Invalid use of group function

如何正确地做到这一点?

如果需要,我会发布完整的声明。

此查询的含义是在连接(图像)表格中选择包含最多照片的1个广告。

谢谢;)

2 个答案:

答案 0 :(得分:1)

WHERE子句只能用于逐行过滤表/派生表中的行。要根据聚合结果进行过滤,您需要使用HAVING而不是WHERE:

HAVING COUNT(i.t_1) > 2

答案 1 :(得分:0)

如果你真的只是在寻找“一张照片最多的广告”,你可能想要这样的东西:

select i.t_1,count(*) n ... group by i.t_1 order by n desc limit 1