2016-11-11 87 views
0

我想从1个结果中的一对多关系中获得所有匹配结果。获取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

您可以使用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 
+0

我不知道谁downvoted或者为什么,但我已阅读有关“GROUP_CONCAT”。没有办法让它像平时一样,而不是用逗号分开,例如? – NealVDV