2010-01-15 67 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