2014-06-30 31 views
1

目前我有一个带有两个表zip_codes和电子邮件的数据库。 zip_codes包含三个字段zid,eid和zip。电子邮件包含eid,电子邮件和位置。MySQL将多个行加入到一个字段中

这里是我当前的查询:

SELECT a.zid, a.zips, b.email, b.location FROM zip_codes AS a INNER JOIN emails AS b ON a.eid = b.eid 

基本上就是我想要做的是转变的结果,我到这个(http://sqlandme.com/2011/04/27/tsql-concatenate-rows-using-for-xml-path/),但我不知道在所有的如何与做我的目前设立。

我试着改变名字,但在我的语法[文本()]附近出现错误,因为我不知道如何使用这个,我卡住了。

所有帮助表示赞赏。

+0

您的电子邮件是否有一个以上的邮政编码,并且您希望将每封电子邮件的所有邮政编码列为清单? –

+0

有10到80个邮政编码都会发送到一封邮件。我想为每个电子邮件和位置获得一行,所有邮政编码都用逗号分隔。 – Devyn

回答

0

对于MySQL,你可以使用GROUP_CONCAT

SELECT 
    b.email, 
    b.location, 
    GROUP_CONCAT(a.zips) zipcodes 
FROM 
    zip_codes AS a 
    INNER JOIN emails AS b 
    ON a.eid = b.eid 
GROUP BY b.eid 

注意使用GROUP_CONCAT:该结果被截断由 的group_concat_max_len系统变量,其中有 1024的默认值给出的最大长度。虽然返回值的有效最大长度受限于值 max_allowed_pa​​cket

+1

谢谢。这工作完美。 – Devyn

相关问题