获得1对1的结果的所有结果

时间:2016-11-11 15:51:48

标签: mysql sql

我试图在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

感谢您的任何建议!

1 个答案:

答案 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