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

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

10-07 16:46