Bidirektionaler äußerer Join

8

Angenommen, wir haben eine Tabelle A:

%Vor%

und Tabelle B:

%Vor%

Ich möchte A * B auf A.itemid = B.itemid auf beiden rechten und linken Wegen beitreten. h. Ergebnis:

%Vor%

Gibt es eine Möglichkeit, dies in einer Abfrage in MySQL zu tun?

    
elephantum 13.08.2008, 09:41
quelle

3 Antworten

6

Es wird als vollständiger äußerer Join bezeichnet und wird in MySQL nicht nativ unterstützt. Dies wird anhand seiner Dokumentation . Sie können diese Einschränkung mit UNION umgehen, wie in den Kommentaren zu der Seite, mit der ich verlinkt bin, beschrieben.

[edit] Da andere Snippets gepostet haben, gehen Sie hier. Sie können die Erklärung auf der verlinkten Seite sehen.

%Vor%     
Nickolay 13.08.2008, 10:15
quelle
2

Könnte mit etwas Arbeit machen, aber hier ist etwas sql

%Vor%

Dies beruht auf dem linken Join, der alle Zeilen in der ursprünglichen Tabelle zurückgibt (in diesem Fall ist dies die Subselect-Tabelle T). Wenn in der verknüpften Tabelle keine Übereinstimmungen vorhanden sind, wird die Spalte auf NULL gesetzt.

    
roo 13.08.2008 09:56
quelle
-1

Dies funktioniert für mich auf SQL Server:

%Vor%     
Matt Hamilton 13.08.2008 09:58
quelle

Tags und Links