如何在where子句中使用运算符来比较子查询返回的结果



我想使用大于运算符来查找外部查询中工资高于子查询中学生的学生。

我尝试在where子句中使用>运算符,但是,由于子查询返回的行不止一行,因此这种方法不起作用。

如何使用where子句中的运算符将外部查询中的记录与子查询返回的许多行进行比较,以便在外部查询中找到薪水高于子查询中学生的学生?

SELECT NAME
FROM STUDENTS AS S INNER JOIN PACKAGES AS P
ON S.ID = P.ID
WHERE P.SALARY > (SELECT P.SALARY
FROM FRIENDS AS F INNER JOIN PACKAGES AS P
ON F.FRIEND_ID = P.ID);

您可以尝试一种变通方法。您可以添加一个具有子查询记录的最大值的外部查询,并与该单个值进行比较。

请注意,此解决方案仅包括外部的所有学生薪资高于子查询的最大值的查询。

尝试:

SELECT NAME
FROM STUDENTS AS S 
INNER JOIN PACKAGES AS PON S.ID = P.ID
WHERE P.SALARY > (  
SELECT MAX(t1.P.SALARY)   
FROM (  
SELECT P.SALARY
FROM FRIENDS AS F INNER JOIN PACKAGES AS P ON F.FRIEND_ID = P.ID
) as t1
); 

相关内容

  • 没有找到相关文章

最新更新