2014-01-06 54 views
0

這裏是我的問題:SQL SELECT和GROUP

SELECT * 
FROM posts 
JOIN tags 
ON tags.did = posts.did 
JOIN users 
ON users.username = posts.username 
GROUP by tags.did 

現在結果只顯示一個標籤,當我對did兩個標籤。我希望它顯示所有我有它有點像這樣

a post | tag 1, tag 2 

但現在,它顯示這樣

a post | tag 1 

它,我不知道爲什麼它不會顯示標籤另一個標籤。我希望這是足夠的相關信息。 (對不起,我有點SQL初學者的現在)

+3

您需要看使用'group_concat'聚合函數http://dev.mysql.com/doc/refman/5.0/en/group -by-functions.html#function_group-concat這將創建每個帖子的標籤列表 – Taryn

回答

0

TRY(必不可少的一部分,未測試)

SELECT p.postid, GROUP_CONCAT(t.tags) 
FROM posts p 
INNER JOIN tags t ON t.did = p.did 
INNER JOIN users u ON u.username = p.username 
GROUP by t.did 
+1

您發佈的以前的代碼工作,所以我會繼續接受此作爲答案,並感謝您的幫助! –

0

SELECT post.Text, Coalesce('',select tag +',' from tags where tags.did=posts.did) 
FROM posts 

或我們GROUP_CONCAT group concat

SELECT GROUP_CONCAT(Language) As Languages FROM CountryLanguage WHERE CountryCode = 'THA' 

我沒有一個mysql再次進行測試,但你需要這樣的東西。 My Sql Coalsce