8
votes

Écrivez une requête à moi-même?

J'ai la table suivante avec des valeurs xxx pré>

maintenant je veux que le résultat devienne après p> xxx pré>

donc j'ai écrit la requête suivante . P>

ID  EmpName BossName
1   Abhijit Haris
2   Haris   Sanal
3   Sanal   Null


6 commentaires

Remplacez la jointure intérieure avec Join externe gauche .


Sélectionnez E1.Id, e1.empname, E.empname comme BossName de #Tmpemployee E Gauche Outer Rejoignez #Tmpemployee E1 sur e1.EmpBossid = e.Id Essayé mais Résultat Devenir id Empname Nom Null Null Abhijit 1 Abhijit Haris 2 Haris Sanal


Il suffit de le changer à un join droit.


@Haris - Je n'ai pas assez cherché les résultats attendus et votre déclaration actuelle, mais le creux est que vous devez rechercher la différence entre un interne et un externe .


ok lieven keersmaekers merci pour votre conseil


Dupliqué possible de Rejoignez auto Rejoint


3 Réponses :


1
votes

Utiliser Droite Joindre XXX

Je pense que c'est OK pour U


0 commentaires

0
votes

Essayez ceci ...

Utilisez la jointure gauche .. xxx


2 commentaires

Non ça non correct. Je reçois la réponse à devenir id Empname BossName NULL NULL NULL ABHIJIT 1 ABHIJIT HARIS 2 HARIS SANAL


Non, ce qui a également une mauvaise réponse. Au moins vous assurez-vous que l'affichage CMNT est correct



1
votes

Utilisez un rejoindre et inverser l'ordre de vos tables: xxx

voir un Démo en direct de cette requête sur sqlfiddle

Placer la partie" Employee "de la jointure premier signifie que tous les employés sont répertoriés.

Utilisation d'une jointure gauche signifie que les employés sans patron (par exemple, le PDG) seront toujours répertoriés, mais auront un < Code> null pour la colonne BossName .

Si vous voulez vraiment uniquement que l'employé répertorié s'ils ont un boss, changez la requête en instantanément Joindre au lieu de Joindre de gauche (Notez que la jointure par défaut Type est interne )

ps Le formatage de votre requête ne fait pas mal non plus:


2 commentaires

Merci pour u r conseil. Mais répondez à ne pas corriger le résultat que ID Empname BossName 1 Abhijit Null 2 ​​Haris Abhijit 3 Sanal Haris


Oups! J'ai rejoint le mauvais sens. J'ai mis à jour le lien Query and Sqlfiddle. Renommer les alias de table rendez-vous plus claire aussi. Ça marche correctement maintenant