员工表“ 的 EMPNO, 为ename, sal_id, EMP_ID, 薪水, 一个月
SALARY表:
sal_id, EMP_ID, 薪水, 月
我正在尝试查询从员工表+获取所有员工 在工资表中,emp_id有多个条目(可能不是)。
我想要员工名单及其最新薪水(或上个月薪水)
我目前的查询是:
SELECT * FROM emp
LEFT JOIN salary
ON emp.empno
= salary.emp_id
GROUP BY empno
ORDER BY salary.sal_id
DESC
但是我得到第一份工资的emp列表,我想要最新的工资。
帮帮我:( Emploee table Salary table
答案 0 :(得分:0)
您的排序是sal_id
,而您可能希望按salary
中代表其月份的字段进行排序。
答案 1 :(得分:0)
SELECT emp.empno, emp.name, (
SELECT sal
FROM salary
WHERE salary.empno = emp.empno
ORDER BY salary.sal_id DESC LIMIT 1
)
FROM emp
答案 2 :(得分:0)
经过大量的R& D和谷歌搜索,我得到了解决方案。 在单个查询中不可能,我们必须应用2个查询
SELECT * FROM emp LEFT JOIN salary ON salary.emp_id=emp.empno WHERE salary.sal_id IN ( SELECT MAX(salary.sal_id) FROM salary GROUP BY salary.emp_id ) GROUP BY salary.sal_id ORDER BY salary.sal_id DESC