我有這樣的問題:Mysql的問題的concat
我有兩個表:一個用戶數據和一個與分配給用戶(一個用戶可以擁有多個郵政編碼)郵政編碼。
郵政編碼表有兩列 - 開始和結束。首先,我需要選擇START和END,並將它們分開。與 - 。我知道我可以使用CONCAT_WS來做到這一點,但我也需要將這些連接的字符串(有多行)連接成一行。
我已經有這個疑問:
SELECT pc.user_id, CONCAT_WS('-', pc.start, pc.end) FROM postal_codes pc, users u WHERE u.id=pc.user_id
不過就是你期望它給我的結果是這樣的:(對不起,我不知道怎麼在這裏插入表格)
row | user_id | postal range
============================
1 | 1 | AAAA-BBBB
----------------------------
2 | 1 | CCCC-DDDD
----------------------------
3 | 1 | MMMM-NNNN
----------------------------
4 | 2 | CCCC-DDDD
----------------------------
5 | 2 | EEEE-FFFF
----------------------------
和我需要的是這樣的:
row | user_ID | postal_range
----------------------------
1 | 1 | AAAA-BBBB, CCCC-DDDD, MMMM-NNNN
----------------------------
2 | 2 | CCCC-DDDD, EEEE-FFFF
----------------------------
我知道我可以使用GROUP_CONCAT如果我想連接多行 - 但如果我包裹上一個查詢的結果爲GROUP_CONCAT這樣的:
SELECT pc.user_id, (GROUP_CONCAT((SELECT CONCAT_WS('-', pc.start, pc.end) FROM bs_postal_codes pc, bs_users u WHERE u.id=pc.user_id) SEPARATOR ', ')) FROM bs_postal_codes pc
它給我的錯誤:子查詢返回多個1行
這將真正幫助我,如果有人給我這個手,謝謝。
這也許不是,但在SQLite的我有使用'end'作爲列名的問題。 – Francisc
好的第一個問題。我想知道你是否真的想保留這個用戶名。 –