mysql - 列出收入高于经理的员工姓名

标签 mysql sql database

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/

相关文章:

sql - 为什么我们关心数据类型?

php - "Created At and Updated At"数据库属性定义

mysql - sqoop增量导入更新的行和新创建的记录

MYSQL 的 "FLUSH PRIVILEGES"在 SQL Server 中的等价物?

php - PHP 中的 MySql 查询问题

mysql - 如何使用mysql中的动态查询计算总记录

php - 制作 JQuery POst 时出现 Not Acceptable 错误

mysql - 客户多于平均水平的城市。子查询

php - 如何设计布局可能随时间变化的通用数据库?

c++ - 如何从 C++ 中列出 BDB 中的键/值