MySQL与其他记录的字符串连接表
您能否帮助我使“MySQL与其他记录的字符串连接表,mysql,Mysql,您能否帮助我使“首选项”表中的所有记录在p.data返回结果中成为字符串 我只能想到CONCAT,但我的内部连接只选择了一条记录 示例查询 SELECT u.userid, p.data FROM user u INNER JOIN preference p ON ( p.userid = u.userid ) WHERE u.userid = 1 所需输出 userid | data -------------- 1 | 1,2,3,4,5 2
首选项
”表中的所有记录在p.data
返回结果中成为字符串
我只能想到CONCAT
,但我的内部连接只选择了一条记录
示例查询
SELECT
u.userid,
p.data
FROM user u
INNER JOIN preference p ON (
p.userid = u.userid
)
WHERE u.userid = 1
所需输出
userid | data
--------------
1 | 1,2,3,4,5
2 | 1,2,3,4
3 | 1,2,3
MySQL正好执行此功能:
SELECT
u.userid,
GROUP_CONCAT(p.data) AS data
FROM
user u
INNER JOIN preference p ON u.userid = p.userid
WHERE u.userid = 1
GROUP BY u.userid
由于您的
WHERE
子句,您只能返回一行。删除WHERE
子句以返回所有用户的行。如果要返回首选项
表中没有相关行的用户,请将其切换到左联接。内部联接无关紧要,只联接一个字段。
您必须添加分组方式
SELECT
u.userid,
GroupConcat(p.data) as Data
FROM user u
INNER JOIN preference p ON (
p.userid = u.userid
)
--WHERE u.userid = 1 With this you not gonna get the desired output.
group by u.userId
谢谢,只要是小组讨论就行了!