2010-01-15 103 views
0

什麼是錯的:mysql的 '未知列' 錯誤

SELECT *, 
GROUP_CONCAT(DISTINCT w.tag_word ORDER BY w.tag_word ASC SEPARATOR ' ') AS tags, 
MATCH (title, description, tags) AGAINST ('london') AS score 

FROM article G 
     JOIN tag_index I ON G.article_id = I.tag_target_id 
     JOIN tag_word W ON I.tag_word_id = W.tag_word_id 

WHERE I.tag_type_id = 1 AND MATCH (title, description, tags) AGAINST ('london') 
GROUP BY G.article_id 

我得到的錯誤 '在「字段列表 '

UPDATE' 未知列' 標籤:

謝謝鸚鵡指出我需要HAVING條款。我仍然無法弄清楚如何實現它。我只能猜測它不能在一個查詢中完成,並且需要成爲一個子查詢。

回答

2

由於「標籤」,你用你GROUP_CONCAT需要使用having clause創造價值。每當你想分組後應用到的東西條件,使用having。它在分組之後與where的作用相同。

Where在你的代碼示例試圖應用於過濾從文章最終將被分組,以建立一個像「標籤」的東西的結果。

+0

我似乎仍不能得到它的合作...任何想法,我應該如何實現呢? – Mark 2010-01-15 09:48:53