2012-05-28 101 views
1

我有3個PostgreSQL的表如下Postgres的連接查詢

員工

emp_name | emp_id | user_name | psw | etc 

工作

Work_id |work_type| Project_manger_id(employee) | Architect_id (emp) | tech_lead_id | dept_id 

部門

dept_id | dept_name 

現在我要的是一個表像這樣

work_type | project_manager (name) | architect (name) | tech_lead (name) | dept (name) 

簡單地說,我要的是把工作表,但更換標識與名稱

+0

歡迎SO - 你嘗試過什麼? –

+0

我堅持的是,我不知道如何合併工作表與員工,因爲我高壓得到員工姓名匹配,project_manager_id與emp_id,architect_id與emp_id,tech_lead_id與emp_id,我怎麼能做到這一點,到目前爲止我所做的就是這樣一些事情 SELECT e1.emp_name,e2.emp_name,e3.emp_name,w.work_id FROM員工e1,員工e2,員工e3,工作w 其中 e1.emp_id_id = w.project_manager_id和 e2.emp_id = –

+0

以這種方式我可以完成它,但唯一的問題是沒有價值的員工,然後整個元組被忽略,:( –

回答

3

試試這個

Select WT.Work_Type,PM.emp_name As ProjectManager,AR.emp_name AS Arhitect,TL.emp_name As TechLead,Dept.Dept_name As Department From 
Work 
INNER JOIN employees AS PM ON (Wt.Project_manger_id=PM.emp_id) 
INNER JOIN employees AS AR ON (Wt.Architect_id=AR.emp_id) 
INNER JOIN employees AS TL ON (Wt.tech_lead_id=TL.emp_id) 
INNER JOIN Dept As Dept ON (Wt.dept_id=Dept.dept_id)