0
我有這些表和數據..列出員工姓名與自己當前的工作/部門(表職員LEFT JOIN表Department_Staff)
staff
(id, name, current_department_id)
1, "John", 1
2, "Matt", 1
department
(id, name)
1, "Sales"
2, "Support"
designation
(id, name)
1, "Sales Exac"
2, "Sales Manager"
3, "Support Exec"
department_staff
(department_id, staff_id, start_year, end_year, designation_id)
1, 1, 2005, 2006, 1
1, 1, 2007, 2008, 2
2, 2, 2007, 2008, 3
現在,我想列出他們目前的名稱/部門所有員工的。
我用這個語法
SELECT Name=s.name,
Department=d.name,
JSTART=ds.start_year, JEND=ds.end_year,
Designation=j.name FROM
staff s
LEFT JOIN department d ON d.id = s.current_department_id
LEFT JOIN department_staff ds ON ds.staff_id = s.id
LEFT JOIN designation j ON j.id = ds.designation_id
但結果顯示所有約翰的工作經歷。我只想爲約翰和其他人提供最新的工作。這條語句產生相同的結果如上
SELECT Name=s.name,
Department=d.name,
JSTART=ds.start_year, JEND=ds.end_year,
Designation=j.name FROM
FROM department_staff ds
LEFT JOIN department d ON d.id = ds.department_id
LEFT JOIN staff s ON s.id = ds.staff_id
LEFT JOIN designation ON j.id = ds.designation_id
//邊注:寫這個點之後,似乎我不需要current_department_id存儲在表中的工作人員,因爲我可以在表department_staff。
我重複我的問題:我如何列出我的員工與他們的最新工作指定和部門?
謝謝你的時間。
注:這會給你最新的工作檔案資料。不是目前的! – Meet
謝謝。效果很好! – Iyas