sql - 这是一个有效的关联子查询吗?
问题描述
所以我有一个表Car(Car_id, Value, Make)
,另一个表Person(Person_id, Name)
和第三个表将两者连接在一起PerCar(Car_id, Person_id)
。
所以我有这个相关的子查询:
SELECT MAKE, VALUE
FROM CAR WHERE VALUE > (SELECT AVG(VALUE) FROM CAR C WHERE C.CAR_ID = CAR_ID);
因此,如果我还想显示该人的姓名,这是否也是有效的相关子查询:
SELECT Car.Make, Car.Value, Person.Name
FROM PerCar NATURAL JOIN Car
NATURAL JOIN Person where Car.Value > (SELECT AVG(VALUE) FROM Car);
解决方案
您的查询应如下 -
你可以在这里查看演示
SELECT Car.Make,
Car.Value,
Person.Name
from Car
INNER JOIN CarPer
ON Car.Car_id = CarPer.Car_id
INNER JOIN Person
ON Person.Person_id = CarPer.Person_ID
WHERE Car.Value > (SELECT AVG(VALUE) FROM Car);
请记住,根据您的要求和数据结构,这里的连接可以是 INNER、OUTER、LEFT 或其他连接。
推荐阅读
- google-chrome - pushsubscriptionchange 在 Edge、chrome、opera 和 firefox 中不起作用。谁能告诉我我做错了什么?
- azure-ad-b2c - 自助密码重置(嵌入式密码重置示例)不会使用用户已在电子邮件字段中输入的内容预填充电子邮件字段
- python - 如何根据数据框中的条件将元素保留在列表中?
- sql - 空表视图
- c# - 按钮多点单击问题 Xamarin.Forms
- c# - Qt 的 qChecksum 里面是什么?
- bash - 在 shell 脚本中使用 curl 创建名称变量并运行 for 循环以将文件内容添加到 api,但仅添加名称
- java - 为什么 java 中的 try/catch 不适用于我的案例?
- amazon-web-services - 无法使用 aws cloudformation select 和 findinmap
- postgresql - 创建备份作业后没有任何反应