Ghost_Rider_R
Lieutenant
- Registriert
- Nov. 2009
- Beiträge
- 759
Hallo zusammen,
wie macht man denn einen FULL OUTER JOIN über 3 Tabellen, ohne dass Zeilen mehrfach angezeigt werden?
Ich habe meine Beispiel-Abfrage angehängt (mit anderen Tabellennamen).
Ein einfaches Beispiel: (und es ist nur ein Beispiel, die Tabellen würde man so natürlich nicht aufsetzten)
Man gehe davon aus, dass es 3 Tabellen gibt z.B. Tabelle Artikel, ArtikelFarbe und Artikelgröße. In jeder Tabelle gibt es als Schlüssel die Spalte ArtikelNr und dann die Spalte Bezeichnung (Tabelle Artikel), die Spalte Farbe (Tabelle ArtikelFarbe) und in der letzten Tabelle die Spalte Größe (Tabelle Artikelgröße).
Mein Stand wäre aktuell wie folgt:
SELECT Artikel.ArtikelNr,
ArtikelFarbe.ArtikelNr,
ArtikelGröße.ArtikelNr
FROM Artikel
FULL OUTER JOIN ArtikelFarbe ON Artikel.ArtikelNr = ArtikelFarbe.ArtikelNr
FULL OUTER JOIN ArtikelGröße ON Artikel.ArtikelNr = ArtikelGröße.ArtikelNr
AND ArtikelFarbe.ArtikelNr = ArtikelGröße.ArtikelNr
Sofern in allen drei Tabellen ein Datensatz vorhanden ist bekomme ich genau eine Zeile zurück (wie ich es auch möchte), wenn aber jetzt in einer Tabelle ein Wert fehlt, bekomme ich den Datensatz mehrfach zurück, Gruppieren lässt sich das leider auch nicht.
Hat da jemand eine Idee wie man sowas macht?
Bitte keine Workarounds, die hab ich schon und funktionieren auch aber ich suche die ,,saubere" Lösung, wenn es denn eine gibt :-)
Vielen Dank und LG
Ruff
wie macht man denn einen FULL OUTER JOIN über 3 Tabellen, ohne dass Zeilen mehrfach angezeigt werden?
Ich habe meine Beispiel-Abfrage angehängt (mit anderen Tabellennamen).
Ein einfaches Beispiel: (und es ist nur ein Beispiel, die Tabellen würde man so natürlich nicht aufsetzten)
Man gehe davon aus, dass es 3 Tabellen gibt z.B. Tabelle Artikel, ArtikelFarbe und Artikelgröße. In jeder Tabelle gibt es als Schlüssel die Spalte ArtikelNr und dann die Spalte Bezeichnung (Tabelle Artikel), die Spalte Farbe (Tabelle ArtikelFarbe) und in der letzten Tabelle die Spalte Größe (Tabelle Artikelgröße).
Mein Stand wäre aktuell wie folgt:
SELECT Artikel.ArtikelNr,
ArtikelFarbe.ArtikelNr,
ArtikelGröße.ArtikelNr
FROM Artikel
FULL OUTER JOIN ArtikelFarbe ON Artikel.ArtikelNr = ArtikelFarbe.ArtikelNr
FULL OUTER JOIN ArtikelGröße ON Artikel.ArtikelNr = ArtikelGröße.ArtikelNr
AND ArtikelFarbe.ArtikelNr = ArtikelGröße.ArtikelNr
Sofern in allen drei Tabellen ein Datensatz vorhanden ist bekomme ich genau eine Zeile zurück (wie ich es auch möchte), wenn aber jetzt in einer Tabelle ein Wert fehlt, bekomme ich den Datensatz mehrfach zurück, Gruppieren lässt sich das leider auch nicht.
Hat da jemand eine Idee wie man sowas macht?
Bitte keine Workarounds, die hab ich schon und funktionieren auch aber ich suche die ,,saubere" Lösung, wenn es denn eine gibt :-)
Vielen Dank und LG
Ruff