J'ai le tableau suivant avec les valeursÉcrire une requête de jointure automatique?
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);
Maintenant, je veux que le résultat suivant se
ID EmpName BossName
1 Abhijit Haris
2 Haris Sanal
donc j'ai écrit la requête suivante.
select E1.ID,E1.EmpName, E.EmpName as BossName from #tmpEmployee E inner join #tmpEmployee E1 on E1.EmpBossID=E.ID.
Mais le problème est le 3ème employé (Sanal) n'a pas de patron. Je veux donc ce résultat exact:
ID EmpName BossName
1 Abhijit Haris
2 Haris Sanal
3 Sanal Null
Que dois-je faire?
Remplacez la 'jointure interne' par [' left outer join'] (http://stackoverflow.com/questions/38549/difference-between-inner-and-outer-join). –
sélectionnez E1.ID, E1.EmpName, E.EmpName comme BossName de #tmpEmployee E jointure externe gauche #tmpEmployee E1 = E1.EmpBossID E.ID essayé mais le résultat se ID \t EmpName \t BossName NULL \t NULL \t Abhijit Abhijit \t Haris Haris \t Sanal – Haris
Il suffit de passer à une jointure à droite. – Curt