php - 根据 Mysql 中的 empid wise 获取最高 Sal 行
问题描述
我有 3 张桌子
Employee
---------------
ID Name
1 John
2 Kelly
3 Leo
Dept
-------
ID Name
1 Finance
2 A/c
3 Marketing
Accout
--------------------
Id EmpId Dept Sal
1 1 1 25,000
2 1 2 30,000
3 2 2 20,000
4 2 1 15,000
5 3 3 20,000
现在我需要用适当的数据获得最高薪水行。
就像 Emp id 1 最高 sal = 30,0000 所以从 a/c 表中获取整行 id = 2 Emp id 2 最高 Sal = 20,000 所以从 a/c 表中获取整行 id = 3
我尝试
SELECT E.id,E.name AS emp_name,D.name AS dept_name,
A.Dept as dept_id,max(A.sal) AS max_sal
FROM Accout A
JOIN Employee E ON A.EmpId = E.ID
JOIN Dept D ON A.Dept = D.Id
Group by EmpId
所以我得到了像
Id emp_name dept_name dept_id max_sal
1 John Finance 1 30,000
2 Kelly A/c 2 20,000
3 Leo Marketing 3 20,000
但我需要这样的结果
Id emp_name dept_name dept_id max_sal
1 John A/c 2 30,000
2 Kelly A/c 2 20,000
3 Leo Marketing 3 20,000
请让我知道这怎么可能,这样我才能得到正确的输出。
提前致谢。
解决方案
GROUP BY
我没有使用 ,因为ORDER BY
你说你只想要最高到最低的薪水,加上我删除了max()
:
SELECT E.id
E.name AS emp_name,
D.name AS dept_name,
A.DeptId as dept_id,
A.sal AS max_sal
FROM Account A
JOIN Employee E ON A.EmpId = E.ID
JOIN Dept D ON A.DeptId = D.Id
ORDER BY max_sal DESC
LIMIT 3
LIMIT
如果要限制返回的行,可以使用
推荐阅读
- django - django.db.migrations.exceptions.InconsistentMigrationHistory 的另一个原因
- google-app-engine - 文档 - 是否有部署管理器资源的可用属性列表?
- c++ - 尝试在 C++ 中验证输入
- python-3.x - 如果我打包命令,为什么 tkinter 不显示图像
- regex - 用于捕获单词分隔项的正则表达式
- java - 将文字与图片分享到电报
- vue.js - 如何忽略 VuePress 中的自定义元素以避免“未知自定义元素”错误?
- matlab - 发布 MATLAB 命令时出现“输入参数不足”
- reactjs - 使用 React Hooks,为什么我的事件处理程序会以不正确的状态触发?
- javascript - 加载一个数组