这可能是一件非常基本的事情,但我无法完全使它正常工作,而且找不到适合我所要查找的示例。说我有三个表:
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