我有这样的问题: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
好的第一个问题。我想知道你是否真的想保留这个用户名。 –