我有一個表articles
,另一tags
,第三個被稱爲article_tags
。我想製作一個列出特定標籤的所有文章的頁面。獲取所有文章與他們的標籤GROUP_CONCAT字段
我的查詢看起來是這樣的:
SELECT headline, GROUP_CONCAT(tags.tag_name) AS all_tags FROM articles
LEFT JOIN articles_tags ON articles.article_id = articles_tags.article_id
LEFT JOIN tags ON articles_tags.tag_id = tags.tag_id
WHERE tags.tag_name = 'japan'
GROUP BY articles.article_id
所有返回的文章只有japan
作爲標記,即使有問題的文章有幾個標籤。
這顯然與WHERE
條款有關,但我無法弄清楚如何在這裏做我想做的事情 - 理想情況下,我最終會得到一個像japan,china,korea
這樣的列表。這是子查詢的地方嗎?可以做一個SQL大師建議。
謝謝, 馬特
在您的查詢中,您引用了tags表中的三個不同列:'tags.tag_id','tags.tag_name'和'tag ='japan''。這是一個錯誤嗎?你可以發佈你的表格定義來幫助澄清這一點嗎? – 2010-08-26 20:24:31
Hi Mark - 是的,oops - 'tag ='japan'應該讀爲'tag_name ='japan' - 爲了這個例子我簡化了表格定義。我只是在下面嘗試你的代碼,所以看看這個空間。 – 2010-08-26 20:26:37