我试图在1个结果中获得一对多关系的所有匹配结果。
表格结构
Users owr_rosterdata
-------- --------
id| name id | user | info
----------- ---------------------
1 | nealvdv 1 | 1 | aaaa
2 | another 2 | 1 | bbbb
3 | 2 | cccc
4 | 2 | dddd
我当前的查询是这样的(没有WHERE子句)
"
SELECT owr_rosterdata.*, users.id, users.name FROM owr_rosterdata
INNER JOIN users ON owr_rosterdata.user = users.id
"
当前输出
用户1 :1,nealvdv,aaaa
用户1 :1,nealvdv,bbbb
用户2 :1,另一个,cccc
用户2 :1,另一个,dddd
此查询的重点是避免多次查询 将用户的所有匹配结果合并为1个结果。
所需的输出
用户1 :1,nealvdv,aaaa,bbbb
用户2 :2,另一个,cccc,dddd
感谢您的任何建议!
答案 0 :(得分:1)
您可以使用GROUP_CONCAT
:
SELECT users.id, users.name,
GROUP_CONCAT(DISTINCT owr_rosterdata.info ORDER BY owr_rosterdata.info ASC )
FROM owr_rosterdata
INNER JOIN users ON owr_rosterdata.user = users.id
GROUP BY users.id, users.name