我有一張表代表僱員。我有第二個表格來表示各種員工檔案,例如員工,團隊負責人,經理,執行人員等。我有第三個將員工映射到多對多關係中的配置文件,即員工可以同時屬於「員工」配置文件和「經理」配置文件。多對多表示爲列
如何獲得顯示我第一列中每個員工的回報,然後是代表每個配置文件的後續列,並且是否否(或類似)表示該員工是否屬於每個特定配置文件?
我有一張表代表僱員。我有第二個表格來表示各種員工檔案,例如員工,團隊負責人,經理,執行人員等。我有第三個將員工映射到多對多關係中的配置文件,即員工可以同時屬於「員工」配置文件和「經理」配置文件。多對多表示爲列
如何獲得顯示我第一列中每個員工的回報,然後是代表每個配置文件的後續列,並且是否否(或類似)表示該員工是否屬於每個特定配置文件?
你可以做到這一點的連接和聚合:
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;
數據結構本身似乎相當合理。
輝煌。謝謝! – Goolsy
我認爲這是值得的重新設計,以消除你有多對多。
如果他們匹配的主/外鍵,你可以
Select * from Table1, Table2 Where Table1ID = Table2ID
你可以粘貼你的餐桌細節,讓回答更輕鬆嗎? – null