2016-11-11 93 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