2016-11-23 12 views
0

ユーザ情報を持つtblUsersというテーブルがあり、tblBadgesEarnedという名前の別のテーブルがあり、ユーザが獲得したすべてのバッジのエントリを含むtblUsersとnm関係にあるとします。別のテーブルの結果に基づいてクエリに行を追加する

tblUsersからユーザー情報を取得した場合、結果として、「BadgesEarned」というフィールドが含まれます。たとえば、上記のユーザーがtblBadgedEarnedから得たすべてのバッジの配列です。

これを単一のクエリで行うことは可能ですか、それを分割して後で配列結果にフィールドを追加する必要がありますか?

+0

可能です。しかし、それはあなたが与えるすべての情報なので、それは私が与えることができるすべての答えです。 – Eric

答えて

0

GROUP_CONCAT()を使用すると、次のような結果が得られます。提供した最小限のスキーマ情報に基づくサンプルクエリを次に示します。

select tblUsers.username, 
    group_concat(distinct tblBadgesEarned.badge_name order by tblBadgesEarned.badge_name) 
from tblUsers 
    left outer join tblBadgesEarned on tblBadgesEarned.user_id = tblUsers.id 
group by tblUsers.username; 
関連する問題