2012-04-09 6 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

を両方のテーブルには何のTABLE1編集として、それを表示しています。 –

答えて

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

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

0
select a.user_ID,a.user,b.roles 
from table1 as a, table2 as b 
where a.user_ID=b.user_ID 
関連する問題