您能否帮助我使“preference
”表中的所有记录成为string
返回结果中的p.data
?
我只能想到CONCAT
,但我的内部联接只选择1条记录。
示例查询
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
答案 0 :(得分:3)
MySQL的GROUP_CONCAT()
执行此功能:
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
子句以返回所有用户的行。如果要返回LEFT JOIN
表中没有相关行的用户,请将其切换为preference
。
答案 1 :(得分:2)
与您的内部联接无关,只能加入一个字段。 您必须按
添加分组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