Eine Self-Join-Abfrage schreiben?

8

Ich habe die folgende Tabelle mit Werten

%Vor%

Jetzt möchte ich das Ergebnis folgen

%Vor%

Ich habe die folgende Abfrage geschrieben.

%Vor%

Aber das Problem ist, der 3. Angestellte (Sanal) hat keinen Chef. Also ich will dieses genaue Ergebnis:

%Vor%

Was soll ich tun?

    
Haris 02.07.2013, 04:47
quelle

3 Antworten

1

Verwenden Sie die rechte Verknüpfung

%Vor%

Ich denke, es ist in Ordnung für dich

    
user2431384 02.07.2013, 04:56
quelle
1

Verwenden Sie LEFT JOIN und kehren Sie die Reihenfolge Ihrer Tabellen um:

%Vor%

Sehen Sie sich eine Live-Demo dieser Abfrage in SQLFiddle

an

Wenn Sie den "Mitarbeiter" -Teil des Joins zuerst eingeben, werden alle Mitarbeiter aufgelistet.

Wenn Sie einen linken Join verwenden, werden Mitarbeiter ohne Vorgesetzten (z. B. der CEO) weiterhin aufgeführt, haben jedoch null für die Spalte BossName .

Wenn Sie wirklich nur Mitarbeiter anzeigen möchten, die einen Chef haben, ändern Sie die Abfrage einfach in JOIN anstelle von LEFT JOIN (beachten Sie, dass der Standardjoin-Typ INNER ist)

ps. das Formatieren der Abfrage tut auch nicht weh:

    
Bohemian 02.07.2013 05:00
quelle
0

probiere das aus ...

Verwenden Sie Links Join ..

%Vor%     
Vijay 02.07.2013 05:00
quelle

Tags und Links