在我执行此查询时在我的数据库中:
SELECT *
FROM users u
LEFT JOIN usersToStrategy uts on uts.userID = u.userID
LEFT JOIN strategy s on uts.stratID = s.stratID
我得到以下结果:
userID username fName utsID userID stratID stratID stratName
1 nlubin Neal 66 1 4 4 s3
1 nlubin Neal 65 1 3 3 s5
1 nlubin Neal 64 1 2 2 s2
1 nlubin Neal 63 1 1 1 s1
如何构建我的查询而不是获取这四行(仅针对一个用户)我为该用户获得了一行,并且该行中的一个单元格中包含所有用户的策略,如下所示:
userID username fName stratNames
1 nlubin Neal s3, s5, s2, s1
我可以在合理范围内为您提供尽可能多的信息来帮助解决问题。
答案 0 :(得分:2)
您使用GROUP_CONCAT。
答案 1 :(得分:2)
我认为您正在寻找GROUP_CONCAT
SELECT userID, username, fName, GROUP_CONCAT(stratNames SEPARATOR ', ') AS strats
FROM users u
LEFT JOIN usersToStrategy uts on uts.userID = u.userID
LEFT JOIN strategy s on uts.stratID = s.stratID
GROUP BY userID, username, fName
答案 2 :(得分:0)
像这样使用GROUP_CONCAT
SELECT userID,
username,
fName,
GROUP_CONCAT(stratNames)
FROM users u
LEFT JOIN usersToStrategy uts on uts.userID = u.userID
LEFT JOIN strategy s on uts.stratID = s.stratID
GROUP BY username;