2016-11-19 14 views
0

2つのテーブルからなるデータセットがあります:テーブル1はユニークなアイテムのセットで、テーブル2はアイテムをリンクするリファレンスのログです一緒に最初のテーブルに。たとえば:MySQL - プライマリテーブルのカラムとしてセカンダリテーブルの結果を選択

表1

+------------+--------------------+ 
|   id | name    | 
+------------+--------------------+ 
|   1 | Item 1    | 
|   2 | Item 2    | 
|   3 | Item 3    | 
|   4 | Item 4    | 
|   5 | Item 5    | 
+------------+--------------------+ 

表2

+------------+--------------------+ 
| item_1_id | item_2_id   | 
+------------+--------------------+ 
|   1 | 2     | 
|   1 | 3     | 
|   1 | 5     | 
|   2 | 4     | 
|   2 | 5     | 
+------------+--------------------+ 

は表2にある行のグループにそれが可能であり、として配列/コレクションのいくつかの並べ替えでそれらを表示します表1の列。だから私の例のテーブルに基づいて、私はこのような何かを返すように望んでいるだろう:

+------------+-----------+----------+ 
|   id | name  | results | 
+------------+-----------+----------+ 
|   1 | Item 1 | 2, 3, 5 | 
|   2 | Item 2 | 1, 4, 5 | 
|   3 | Item 3 | 1  | 
|   4 | Item 4 | 2  | 
|   5 | Item 5 | 1, 2  | 
+------------+-----------+----------+ 
+1

をグループ化するためのショーのために集約された結果と取得のための選択の組合双方の関連アイテムをGROUP_CONCATを使用することができます[GROUP_CONCAT()のマニュアル](http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html) – RiggsFolly

+1

ヒント: 'JOIN'、' GROUP_CONCAT() '。 –

答えて

1

あなたは

select id, name, group_concat(item1) 
    from table_one 
    left join 
    (select item_1_id as item1, item_2_id as item2 
    from table_two 
    union 
    select item_2_id , item_1_id  
    from table_two 
    order by item1) t1 ont1.item1 = table_one.id 
    group by id, name 
関連する問題