2014-02-23 35 views
0
列的特定組合

我正在使用的表是僱員(EMPLOYEE_ID,名字,姓氏,工資,MANAGER_ID,DEPARTMENT_ID)如何獲得在MySQL

的具體問題是找到他們的工資更是所有員工比他們的經理,並顯示這些員工的薪水和他們的經理工資。

我相信我已經找到正確賺誰比他們的經理更職工(如下圖所示),但我似乎無法弄清楚如何我也將顯示管理者的薪水。

select e.EMPLOYEE_ID, e.SALARY, MANAGER_ID 
from employees e 
where e.SALARY > (
    select e1.SALARY 
    from employees e1 
    where e.MANAGER_ID = e1.EMPLOYEE_ID 
    ) 

這會打印員工ID,他們的薪水和員工經理的ID,所以我缺少的是管理人員的薪水。不知怎的,我需要與員工相關的經理ID,並用它來找到自己的薪水,但我只是難倒,我怎麼能做到這一點的一個查詢。

回答

1

加入的經理行的員工行,你將有你需要的東西。

select 
e.employee_id, e.salary as emp_salary, e.manager_id, m.salary as mgr_salary 
from employees as e 
left outer join employees as m on m.employee_id=e.manager_id 
where e.salary > m.salary 
+0

'left outer join'是不必要的。 –