mam następującą tabelę z wartościamiNapisz zapytanie o samo łączenie?
CREATE TABLE #tmpEmployee(ID int, EmpName varchar(50), EmpBossID int)
insert into #tmpEmployee values (1, 'Abhijit', 2);
insert into #tmpEmployee values (2, 'Haris', 3);
insert into #tmpEmployee values (3, 'Sanal', 0);
Teraz chcę wynikiem stać po
ID EmpName BossName
1 Abhijit Haris
2 Haris Sanal
więc Pisałem następujące zapytanie.
select E1.ID,E1.EmpName, E.EmpName as BossName from #tmpEmployee E inner join #tmpEmployee E1 on E1.EmpBossID=E.ID.
Ale problem polega na tym, że trzeci pracownik (Sanal) nie ma szefa. Więc chcę dokładnie ten wynik:
ID EmpName BossName
1 Abhijit Haris
2 Haris Sanal
3 Sanal Null
co mam zrobić?
Zamień 'wewnętrzne sprzężenie' na ['left outer join'] (http://stackoverflow.com/questions/38549/difference-between-inner-and-outer-join). –
wybrać E1.ID, E1.EmpName, E.EmpName jako BossName z #tmpEmployee E lewym sprzężenia zewnętrznego #tmpEmployee E1 na E1.EmpBossID = E.ID próbuje się jednak prowadziły ID \t EmpName \t BossName NULL \t NULL \t Abhijit Abhijit \t Haris Haris \t Sanal – Haris
Po prostu przełącz na PRAWE sprzężenie. – Curt