我前两天写了一篇标题一样的博客,有道友评论说我的写法有问题,当时脑子一蒙就被带偏了,以为自己写错了,就把原来的删除了,结果下来验证了一下自己的写法还是没有问题,所以这次补上。
题是这样的:
有两个表,一个部门表,一个员工表,求各部门最高薪水的部门名称、员工姓名以及薪水(不去重)。
SQL如下:
SELECT
d.`Name`DepartmentName,
b.Salary,
b.`NAME`
FROM
department d,
(
SELECT
emp.DepartmentId DepartmentId,
emp.`Name` NAME,
emp.Salary
FROM
employee emp,
(
SELECT
MAX(e.Salary) maxSalary
FROM
employee e
GROUP BY
e.DepartmentId
) t
WHERE
emp.Salary = t.maxSalary
) b
WHERE
b.DepartmentId = d.ID
查询结果:
当然还有更好的写法,希望大神指教,多谢。