如果在mysql中n行的其他两列的值相同,则追加第三列的结果

时间:2013-12-18 21:14:28

标签: mysql sql

我的SQL查询是

SELECT DISTINCT a.user_login, a.user_email, c.domain
FROM wp_users a
JOIN wp_usermeta b ON a.id = b.user_id
JOIN wp_blogs c ON b.meta_value = c.site_id
WHERE user_login != SUBSTRING_INDEX( user_email,  '@', 1 ) 
LIMIT 0 , 100

结果如下所示

user_login      user_email           domain
ff              ff@asd.com           a.b.c
ff              ff@asd.com           f.g.h
aa              aa@asd.com           a.b.c
aa              aa@asd.com           b.n.m

我需要结果像

 user_login      user_email           domain
 ff              ff@asd.com           a.b.c,f.g.h
 aa              aa@asd.com           a.b.c,b.n.m

我是sql的新手,我无法确定以这种方式得到结果的意思。

1 个答案:

答案 0 :(得分:2)

您正在寻找GROUP_CONCAT()

SELECT DISTINCT a.user_login, a.user_email, GROUP_CONCAT(c.domain)
FROM wp_users a
JOIN wp_usermeta b ON a.id = b.user_id
JOIN wp_blogs c ON b.meta_value = c.site_id
WHERE user_login != SUBSTRING_INDEX( user_email,  '@', 1 ) 
GROUP BY user_login  
LIMIT 0 , 100