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
。