Mehrere LEFT JOIN
Christoph
- datenbank
Hallo,
ich habe in einer Tabelle 3 Nummern. (nummer, nummer2, nummer3) Mit der ersten Nummer stell ich zu 3 anderen Tabellen (b, c, d) die Verbindung mittels LEFT JOIN her.
SELECT a.nummer, a.nummer2, a.nummer3, b.*, c.*, d.* FROM a LEFT JOIN b ON a.nummer = b.nummer LEFT JOIN c ON a.nummer = c.nummer LEFT JOIN d ON a.nummer = d.nummer
Soweit klappt alles.
Jetzt möchte ich aber noch, dass die nummer2 und nummer3 von Tabelle "a" mit den anderen Nummern von den 3 anderen Tabellen "verglichen" wird. Wie soll ich das anstellen?
Anmerkung dazu: Momentan lass ich mir alles von den 3 Tabellen (b, c, d) anzeigen, die dieselbe Nummer haben wie in der Tabelle "a" (a.nummmer).
Jetzt kann es aber sein, dass in der Spalte b.nummer ein Wert drin steht, der jetzt bei a.nummer2 oder a.nummer3 vorkommt. Wie kann ich diese Einträge auch noch anzeigen lassen? Mit UNION? Hatte ich angedacht, aber ich joine noch 2 andere Tabellen die ich dazu noch brauche und soviel ich weiß, müssen bei UNION die Felder gleich sein.
Grüße
Christoph
Ich glaube ich habe es gelöst, bin mir aber noch nicht ganz sicher, es kam aber keine Fehlermeldung usw...:
SELECT a.nummer, a.nummer2, a.nummer3, b.*, c.*, d.*
FROM a
LEFT JOIN b ON (a.nummer = b.nummer OR a.nummer2 = b.nummer)
LEFT JOIN c ON (a.nummer = c.nummer OR a.nummer2 = c.nummer)
LEFT JOIN d ON (a.nummer = d.nummer OR a.nummer2 = d.nummer)