2010-10-23 53 views
1

就像是:Mysql如何在WHERE語句中使用來自連接表的行的COUNT值?

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張廣告,其中加入的(圖片)表格內的照片最多。

感謝)

回答

1

WHERE子句只能用於在表/派生表上的一行接一行的基礎過濾行。過濾器的基礎上聚集的結果,你需要使用而不是在哪裏:

HAVING COUNT(i.t_1) > 2 
+0

謝謝,它的工作,我就必須閱讀的人約HAVING;)將批准後的10分鐘 – Somebody 2010-10-23 11:02:03

+0

@Beck:看看這個相關的問題:http://stackoverflow.com/questions/287474/ sql-whats-the-difference-between-having-and-where - * SQL:HAVING和WHERE有什麼區別?* – 2010-10-23 11:05:26

0

如果你真的只爲「1個廣告最照片」,你可能想是這樣的:

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