[英]Get field from MYSQL subquery from outer main query
在我的 mysql 數據庫中,我有一個員工表 ( EMP
) 和一個部門表 ( DEPT
),並希望找到每個部門中薪水最高的員工。
所以首先我像這樣對部門進行分組
SELECT
dept.DNAME as department,
MAX(emp.SAL) as maximum_sal
FROM
`EMP` emp
JOIN `DEPT` dept ON emp.DEPTNO = dept.DEPTNO
GROUP BY
dept.DNAME
ORDER BY
maximum_sal DESC;
現在為了讓與這些部門相關聯的員工,我嘗試這樣做:
SELECT
emp.ENAME,
emp.SAL,
department
FROM
`EMP` emp
WHERE
(department, maximum_sal) IN (
SELECT
dept.DNAME as department,
MAX(emp.SAL) as maximum_sal
FROM
`EMP` emp
JOIN `DEPT` dept ON emp.DEPTNO = dept.DEPTNO
GROUP BY
dept.DNAME
ORDER BY
maximum_sal DESC
);
但我Unknown column 'department' in 'field list'
我究竟做錯了什么? 如何從內部子查詢中獲取字段以顯示在我的選擇外部查詢中。
無論 MySQL 版本如何,您都可以這樣做:
SELECT emp.ENAME,
emp.SAL,
dept.dname
FROM `EMP` emp
JOIN `DEPT` dept ON emp.DEPTNO = dept.DEPTNO
JOIN
(
SELECT DEPTNO, max(sal) as msal
FROM emp
GROUP BY DEPTNO
) tmp ON tmp.DEPTNO = emp.DEPTNO
AND tmp.msal = emp.sal
GROUP BY dept.DNAME
您的查詢將不起作用,因為您的“子查詢”只是您無法從外部引用的 IN 子句的一部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.