首页 > 解决方案 > 这是一个有效的关联子查询吗?

问题描述

所以我有一个表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);

标签: sqlpostgresqlcorrelated-subquery

解决方案


您的查询应如下 -

你可以在这里查看演示

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 或其他连接。


推荐阅读