我对sql还比较陌生,我正在为我的uni数据库课程做作业。请求是在我的数据库中找到为每个部门(工作)赚取最低工资的员工的姓名。employees表包含每个员工的姓名、代码、职务和工资。
这是我到目前为止写的查询,虽然它给了我所有正确的名字,但它抛出了一些不应该有的。我的想法是捕捉每个工作的最低工资(使用子查询,它实际上似乎工作得很好),然后将其与full employees表连接起来,以获取名称。我做错什么了?
SELECT E.EMP_NAME
FROM EMPLOYEES AS E
INNER JOIN (SELECT MIN(WAGE)AS W
FROM EMPLOYEES
GROUP BY JOB)AS EMP
ON E.WAGE=EMP.W
ORDER BY E.JOB;
1条答案
按热度按时间s6fujrry1#
你只是拿工资参加。你也需要参加工作:
否则,你会得到与另一份工作的最低要求相匹配的员工——而不是你想要的。
注意事项:
您正在学习sql,因此应该为每个表指定一个别名,并将其用于所有列引用。
你应该给列指定别名。
W
不是很有意义。就我个人而言,我会使用一个相关的子查询来编写: