2012-04-08 4 views
-1
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 

ibeitreten 3 Tabellen kompliziert sehr in Sqlserver

empid , work 

, actuallwork (disitrict Namen von Fremdschlüssel actulalwork) erhalten möchten

Antwort

1

können Sie die gleiche Tabelle in einer Abfrage mehrmals verwenden, sofern Sie gaben jedem Auftreten einen eindeutigen Alias. Struktur und Stadtteil werden zweimal aufgeführt, erstmals als Arbeit/Bezirk, zum zweiten Mal als tatsächliche Arbeit/tatsächlicher Bezirk. Auf diese Weise unterscheiden Sie, woher die Spalten kommen, wenn Sie mit mehreren Referenzen auf dieselbe Tabelle arbeiten.

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 
+0

danke sehr, sehr sehr –