2010-05-16 69 views
2

我有一个单一的MYSQL问题,需要尽快帮助。 数据库:Sql选择查询问题。合并行

------------------------------------------------------------------- 
Email     | Name      | Tag 
------------------------------------------------------------------- 
[email protected]   |Test Person    | TagOne 
[email protected]   |Test Person    | Tag Two 
------------------------------------------------------------------- 

需要一个SQL查询,将返回

------------------------------------------------------------------- 
Email     | Name      | Tag 
------------------------------------------------------------------- 
[email protected]   |Test Person    | TagOne, Tag Two 
------------------------------------------------------------------- 

任何帮助吗?

回答

3

用途:

SELECT t.email, 
     t.name, 
     GROUP_CONCAT(DISTINCT t.tag ORDER BY t.tag SEPARATOR ', ') 
    FROM YOUR_TABLE t 
GROUP BY t.email, t.name 

参考:

+0

哇!只是看到你的帖子感到困惑,认为它是我的。我们同时发布!多么伟大的论坛。将会回来。感谢您的帮助! – Jono 2010-05-17 09:30:05

0

其他任何人试图做到这一点,被卡住花费数小时的解决方案:

选择电子邮件,名称,GROUP_CONCAT(标签ORDER BY标签ASC SEPA RATOR',') 从表 GROUP BY电子邮件

+1

小心GROUP BY&HAVING子句中的MySQL隐藏列 - 它是非标准的,并且不会移植到其他数据库:http://dev.mysql.com/doc/refman/5.0/en/group-by-hidden -columns.html – 2010-05-16 21:12:30