这可能是一件非常基本的事情,但我无法完全让它发挥作用,而且我找不到一个完全可以实现我正在寻找的功能的示例。假设我有三张表:
animals: id, name, description
foods: id, name, description
animals_foods: animal_id, food_id
所以我是一名新动物园管理员,我想看看所有动物都会吃什么类型的食物。我想看到这样的输出:
+--------+------------------------+
| animal | foods |
+--------+------------------------+
| lion | beef,chicken,lamb |
| hippo | apples,hay,lettuce |
| monkey | apples,bananas.carrots |
+--------+------------------------+
最佳答案
将表格连接在一起并按动物分组。 group_concat
可以为每个组组合一个列表
select a.name as animal_name, group_concat(f.name) as foods
from animals a
left join animal_foods af on af.animal_id = a.id
left join foods f on af.food_id = f.id
group by a.name
关于mysql - 通过映射表一对多连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30851440/