【问题标题】:join 3 tables very complicated in sqlserver在sql server中加入3个非常复杂的表
【发布时间】:2012-04-08 22:59:38
【问题描述】:
i have 3 tables (employee,structure,District)
1_employee table contains empid,workid and actuallwork fks to structid
2_ structure table contains structid , districtId fk to district
3_District table contains districtid , districtname
我想得到
empid , work
,实际工作(来自外键实际工作的地区名称)
【问题讨论】:
标签:
sql-server
join
inner-join
【解决方案1】:
您可以在查询中多次使用同一个表,前提是您为每次出现都提供了不同的别名。结构和地区列出了两次,第一次是工作/地区,第二次是实际工作/实际地区。这就是您在处理对同一个表的多个引用时区分列的来源的方式。
select employee.empid,
district.districtname,
actualdistrict.districtname acturaldistrictname
from employee
inner join structure work
on employee.workid = work.structid
inner join district
on work.districtfk = district.districtid
inner join structure actualwork
on employee.actuallworkfk = actualwork.structid
inner join district actualdistrict
on actualwork.districtfk = actualdistrict.districtid