例題:# 各個部門中 最高工資中最低的那個部門的 最低工資是多少?
先考慮取得各個部門最高工資
SELECT MAX(salary) AS max_salary,e.`department_id` did FROM employees e GROUP BY e.`department_id`
結果為:
再將此表命名tmp在進行查詢
SELECT MIN(max_salary),did FROM (SELECT MAX(salary) AS max_salary,e.`department_id` did FROM employees e GROUP BY e.`department_id`)AS tmp
此時結果卻為:

由此可見查詢之后的表結構數據之間並無關系
因此應該使用其中的單列數據
解法一:
ELECT MIN(e2.salary) FROM employees e2 WHERE e2.department_id = (SELECT e1.department_id FROM employees e1 GROUP BY e1.department_id HAVING MAX(e1.salary) = (SELECT MIN(tmp.max_salary) AS min_salary FROM( SELECT MAX(salary) AS max_salary,e.`department_id` did FROM employees e GROUP BY e.`department_id` )AS tmp ) )
或者將此表與主表進行關聯查詢
解法二:
SELECT e1.salary FROM employees e1, (SELECT MAX(salary) AS max_salary,e.`department_id` did FROM employees e GROUP BY e.`department_id` ORDER BY max_salary LIMIT 0,1 )AS temp WHERE e1.department_id = temp.did
不理解數據庫的基礎就會犯這種低級錯誤哈哈
