Sql 子查询和多表

Sql 子查询和多表,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,关于我面临的一个问题,我有一个基本问题: 假设我有一个带有以下表格的模型: Food(Quantity, Animal_id) Race(Race_code, Race_name) Animal(Animal_id, Race_code) 我被要求用select查询查找每个种族的总食用量 (当然可以使用求和功能。Race\u name也需要用于显示) 但我不知道如何将这些表的属性从数量链接到种族名称(我只知道我的推理是这样的quantity->animal\u id->race\u code-

关于我面临的一个问题,我有一个基本问题:

假设我有一个带有以下表格的模型:

Food(Quantity, Animal_id)
Race(Race_code, Race_name)
Animal(Animal_id, Race_code)
我被要求用select查询查找每个种族的总食用量

(当然可以使用求和功能。
Race\u name
也需要用于显示)


但我不知道如何将这些表的属性从数量链接到种族名称(我只知道我的推理是这样的
quantity->animal\u id->race\u code->race\u name
)。有什么帮助吗?

看起来像一个连接,不是吗?未聚合的列(本例中为
race\u name
)必须放入
groupby
子句中

select r.race_name,
      sum(f.quantity) sum_quantity
from race r join animal a on a.race_code = r.race_code
            join food f on f.animal_id = a.animal_id
group by r.race_name;
使用子查询:

select race_name ,(select sum(quantity) from food where animal_id in (select animal_id from animal a where r.race_code = a.race_code))
from race r

请以文本表格的形式提供样本数据和所需结果。不过,您的问题表明,答案是一个简单的带聚合的
join