1. 程式人生 > >資料庫SQL實踐19:查詢所有員工的last_name和first_name以及對應的dept_name

資料庫SQL實踐19:查詢所有員工的last_name和first_name以及對應的dept_name

思想:

題目要求查詢所有員工的last_name和first_name以及對應的dept_name,也包括暫時沒有分配部門的員工。

首先通過條件employees e left join dept_emp on e.emp_no = dept_emp.emp_no實現employees和dept_emp的左連線,即左表所有記錄保留即使右表沒有對應的。這樣有的emp_no並不存在dept_emp中,但也會給這個新增空的dept_no值。

其次通過條件left join departments d on dept_emp.dept_no = d.dept_no將剛才左連線生成的表和departments表再次左連線,即實現計算空的dept_no也能有空的dept_name。

最後取出對應的last_name,first_name,dept_name。

select e.last_name,e.first_name,d.dept_name from  
(employees e left join dept_emp on e.emp_no = dept_emp.emp_no) left join departments d on dept_emp.dept_no = d.dept_no;