话不多说, 先看数据表信息.
数据表信息:
employee 表, 包含所有员工信息, 每个员工有其对应的 id, salary 和 departmentid.
+----+-------+--------+--------------+
| id | name | salary | departmentid |
+----+-------+--------+--------------+
| 1 | Joe | 70000 | 1 |
| 2 | Henry | 80000 | 2 |
| 3 | Sam | 60000 | 2 |
| 4 | Max | 90000 | 1 |
+----+-------+--------+--------------+
department 表, 包含公司所有部门的信息, id表示部门的编号, name是部门名称.
+----+----------+
| id | name |
+----+----------+
| 1 | IT |
| 2 | Sales |
+----+----------+
话不多说, 再看需求~
需求:
编写一个 sql 查询,找出每个部门工资最高的员工。
就比如说在IT部门, 员工Max的工资是最高的, 在Sales部门, 员工Henry的工资是最高的. 这里没说输出的具体内容, 可以根据自己的情况进行选择了, 我这里想输出如下的结果:
+----+-------+--------+----------------+
| id | name | salary | departmentname |
+----+-------+--------+----------------+
| 2 | Henry | 80000 | IT |
| 4 | Max | 90000 | Sales |
+----+-------+--------+----------------+
话不多说, 进行拆解~
拆解:
首先呢, 根据需求, 我们可以想到, 这里两个表需要根据部门的编号进行表得连接. 所以, 我会先想到:
on employee.departmentid = de