2013-07-19 57 views
0

我有一張表代表僱員。我有第二個表格來表示各種員工檔案,例如員工,團隊負責人,經理,執行人員等。我有第三個將員工映射到多對多關係中的配置文件,即員工可以同時屬於「員工」配置文件和「經理」配置文件。多對多表示爲列

如何獲得顯示我第一列中每個員工的回報,然後是代表每個配置文件的後續列,並且是否否(或類似)表示該員工是否屬於每個特定配置文件?

+0

你可以粘貼你的餐桌細節,讓回答更輕鬆嗎? – null

回答

1

你可以做到這一點的連接和聚合:

select e.employee_id, 
     max(case when p.profile_name = 'Employee' then 1 else 0 end) as Employee, 
     max(case when p.profile_name = 'Manager' then 1 else 0 end) as Manager, 
     . . . 
from employees e left outer join 
    employee_profile ep 
    e.employee_id = ep.employee_id left outer join 
    profile p 
    on ep.profile_id = p.profile_id 
group by e.employee_id; 

數據結構本身似乎相當合理。

+0

輝煌。謝謝! – Goolsy

0

我認爲這是值得的重新設計,以消除你有多對多。

如果他們匹配的主/外鍵,你可以

Select * from Table1, Table2 Where Table1ID = Table2ID