SELECT
    a.dept_no     dept_no,
    b.emp_no      emp_no
    a.salary      Maxsarary,
FROM
    ( 
        SELECT 
            max( salary ) salary, d.dept_no 
        FROM salaries s 
        LEFT JOIN dept_emp d 
        ON s.emp_no = d.emp_no 
        GROUP BY d.dept_no 
    ) a
    LEFT JOIN 
    ( 
        SELECT 
            s.salary, d.dept_no, d.emp_no 
        FROM salaries s 
        LEFT JOIN dept_emp d 
        ON s.emp_no = d.emp_no 
    ) b 
    ON a.salary = b.salary AND a.dept_no = b.dept_no 
ORDER BY
    a.salary 1: 派生表 a
查询每个部门中工资最高的数据 部门id和工资信息
    ( 
        SELECT 
            max( salary ) salary, d.dept_no 
        FROM salaries s 
        LEFT JOIN dept_emp d 
        ON s.emp_no = d.emp_no 
        GROUP BY d.dept_no 
    ) a 2: 派生表 b
查询所有的信息 员工id, 部门id, 薪水
    ( 
        SELECT 
            d.emp_no, d.dept_no, s.salary
        FROM salaries s 
        LEFT JOIN dept_emp d 
        ON s.emp_no = d.emp_no 
    ) b  3: 聚合表a和表b
根据部门id和最高薪水聚合表a,b, 根据部门id排序
SELECT
    a.dept_no     dept_no,
    b.emp_no      emp_no
    a.salary      Maxsarary,
FROM
        a 
    LEFT JOIN 
    b 
    ON a.salary = b.salary AND a.dept_no = b.dept_no 
ORDER BY
    a.salary 
京公网安备 11010502036488号