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     |
 +----------+---------+----------------------------+

どんな助けでも大歓迎です。

4

3 に答える 3

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詳細については、ドキュメントを確認してください。

于 2012-04-09T05:28:10.250 に答える
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
于 2012-04-09T05:34:52.167 に答える
0
select a.user_ID,a.user,b.roles 
from table1 as a, table2 as b 
where a.user_ID=b.user_ID
于 2012-04-09T06:02:13.153 に答える