2014-06-30 32 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

相關問題