2012-04-09 34 views
1

問題:我想將子查詢的結果作爲文本字段與由逗號(或任何符號)分隔的結果合併到主查詢的結果中。將子查詢結果合併爲文本

實施例:

表1:

+----------+---------+ 
| user_ID | user | 
+----------+---------+ 
|  1 | Smith | 
+----------+---------+ 
|  2 | Jones | 
+----------+---------+ 

表1:

+----------+---------+ 
| user_ID | roles | 
+----------+---------+ 
|  1 | Admin | 
+----------+---------+ 
|  2 | Staff | 
+----------+---------+ 
|  2 | Admin | 
+----------+---------+ 
|  2 | Super | 
+----------+---------+ 
|  1 | Other | 
+----------+---------+ 

所以結果將是:

+----------+---------+----------------------------+ 
| user_ID | user | roles     | 
+----------+---------+----------------------------+ 
|  1 | Smith | Admin, Other   | 
+----------+---------+----------------------------+ 
|  2 | Jones | Staff, Admin, Super  | 
+----------+---------+----------------------------+ 

任何幫助將不勝感激。

+0

在你的問題這兩個表中沒有被顯示爲Table編輯它。 – 2012-04-09 05:32:00

回答

4

試試這個:

select t1.user_id, t1.user, group_concat(t2.roles separator ', ') roles 
from t1 
join t2 on t1.user_id = t2.user_id 
group by t1.user_id, t1.user 

檢查GROUP_CONCAT文檔獲取更多信息。

+0

謝謝 - 這個作品 - 現在我只需要將它結合到我的其他查詢... – Laurence 2012-04-09 10:18:14

0

試試這個,告訴我,如果它有助於:

select a.user_id, a.user, group_concat(b.roles) as roles 
from table1 as a 
join table2 as b on a.user_id = b.user_id 
group by a.user_id 
+1

謝謝 - 這也適用 – Laurence 2012-04-09 10:19:07

0
select a.user_ID,a.user,b.roles 
from table1 as a, table2 as b 
where a.user_ID=b.user_ID