EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 2000-12-17 800 Null 20
7902 FORD ANALYST 7566 1992-12-03 3000 Null 20
大家好,我有这种表格,我需要显示收入高于经理的员工?如果我们有 2 个表会更容易,但我无法想象一个表中的代码。有什么想法吗?
最佳答案
- 您可以在两个表之间进行“自连接”。在第二个表中,
EMPNO
将等于相应的MGR
值。 - 使用
Where
过滤掉员工工资高于经理的情况。
尝试:
SELECT employee.*
FROM your_table_name AS employee
JOIN your_table_name AS manager ON manager.EMPNO = employee.MGR
WHERE employee.SAL > manager.SAL
作为@Strawberry suggested in comments列比较可以在连接条件本身中完成(而不是使用 Where
)。您还可以执行以下操作:
SELECT employee.*
FROM your_table_name AS employee
JOIN your_table_name AS manager ON manager.EMPNO = employee.MGR AND
employee.SAL > manager.SAL
这种方法的优点是我们必须从 Inner Join 切换到 Left Join,查询所需的更改会更少。
关于mysql - 列出收入高于经理的员工姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52793563/