2014-01-06 3 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