【问题标题】:How can I use an operator In the where clause to compare the results returned from a subquery?如何在 where 子句中使用运算符来比较子查询返回的结果?
【发布时间】:2022-01-18 20:27:40
【问题描述】:

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

我尝试在 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);

【问题讨论】:

    标签: mysql subquery where-clause operator-keyword comparison-operators


    【解决方案1】:

    您可以尝试解决方法。您可以使用子查询记录的最大值添加外部查询并与该单个值进行比较。

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

    试试:

    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
                     ); 
                  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 2020-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      相关资源
      最近更新 更多