我有一组由两个表组成的数据:表一是一组唯一项,表二是将第一个表中的项链接在一起的引用日志。例如:
表一
+------------+--------------------+
| id | name |
+------------+--------------------+
| 1 | Item 1 |
| 2 | Item 2 |
| 3 | Item 3 |
| 4 | Item 4 |
| 5 | Item 5 |
+------------+--------------------+
表二
+------------+--------------------+
| 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 |
+------------+-----------+----------+
答案 0 :(得分:1)
您可以使用group_concat显示聚合结果,使用选择联合来获取用于分组的相关项目
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