在两个表之间使用 MAX 聚合

use*_*666 3 sql aggregate max match

我有两个表,雇主和职位:

雇主
eID
eName

职位
eID
工资

我需要在两个表之间匹配我的 eID,确定最高工资是多少,然后只打印 eName。关于我如何做到这一点的任何建议?我尝试了多种方法,但似乎没有任何效果。

我不确定在哪里放置 max(salary) 函数:

select eName
from employer, position
where employer.eID = position.eID
Run Code Online (Sandbox Code Playgroud)

OMG*_*ies 5

要获得薪水最高的人的姓名...

使用连接:

SELECT e.name
  FROM EMPLOYER e
  JOIN POSITION x ON x.eid = e.eid
  JOIN (SELECT MAX(salary) AS max_salary
          FROM POSITION) y ON y.max_salary = x.salary
Run Code Online (Sandbox Code Playgroud)

使用子查询:

SELECT e.name
  FROM EMPLOYER e
  JOIN POSITION p ON p.eid = e.eid
 WHERE p.salary = (SELECT MAX(salary)
                     FROM POSITION)
Run Code Online (Sandbox Code Playgroud)