right join
Christoph
- datenbank
0 Christoph0 Vinzenz Mai0 Ilja
Hi,
ich habe 3 Tabellen und möchte von 2 Tabellen alles angezeigt bekommen, was in der ersten Tabelle nicht vorhanden ist.
Mein Versuch mit right join:
SELECT DISTINCT t1.herstellernr, t2.techdata_herstlnr, t3.also_herstnr
FROM tspi_article t1
RIGHT JOIN tspi_techdata t2 ON t1.herstellernr = t2.techdata_herstlnr
RIGHT JOIN tspi_also t3 ON t1.herstellernr = t3.also_herstnr
WHERE t1.herstellernr IS NULL
Jetzt bekomm ich die Fehlermeldung: Cross dependency found in OUTER JOIN. Examine your ON conditions
Löse ich es etwas anders:
SELECT DISTINCT t1.herstellernr, t2.techdata_herstlnr, t3.also_herstnr
FROM tspi_article t1
RIGHT JOIN tspi_techdata t2 ON t1.herstellernr = t2.techdata_herstlnr
RIGHT JOIN tspi_also t3 ON t2.techdata_herstlnr = t3.also_herstnr
WHERE t1.herstellernr IS NULL
Bekomme ich nur die Datensätze von der Tabelle t3 angezeigt und die von t2, aber auch nur die, die die gleichen Nummern wie von t3 haben.
Wie bekomme ich nun alle Daten von t2 und t3 angezeigt?
Grüße Christoph
Habe MySQL 4.0.25
Als Ergänzung:
Wenn ich
SELECT t1.herstellernr, t2.techdata_herstlnr
FROM tspi_article t1
RIGHT JOIN tspi_techdata t2
ON t1.herstellernr = t2.techdata_herstlnr
WHERE t1.herstellernr IS NULL
eingebe, bekomme ich genau die Daten die ich haben möchte, aber nur von der Tabelle 2.
Dasselbe funktioniert noch für Tabelle 3
SELECT t1.herstellernr, t3.also_herstnr
FROM tspi_article t1
RIGHT JOIN tspi_also t3
ON t1.herstellernr = t3.also_herstnr
WHERE t1.herstellernr IS NULL
Aber wie bekomm ich die 3 Tabellen zusammen, dass sie mir auch alles ausgeben?
Grüße
Christoph
Hallo
SELECT t1.herstellernr, t2.techdata_herstlnr
FROM tspi_article t1
RIGHT JOIN tspi_techdata t2
ON t1.herstellernr = t2.techdata_herstlnr
WHERE t1.herstellernr IS NULL
>
> eingebe, bekomme ich genau die Daten die ich haben möchte, aber nur von der Tabelle 2.
>
> Dasselbe funktioniert noch für Tabelle 3
>
> ~~~sql
SELECT t1.herstellernr, t3.also_herstnr
> FROM tspi_article t1
> RIGHT JOIN tspi_also t3
> ON t1.herstellernr = t3.also_herstnr
> WHERE t1.herstellernr IS NULL
Aber wie bekomm ich die 3 Tabellen zusammen, dass sie mir auch alles ausgeben?
Verwende UNION, das kann MySQL ab Version 4.0.
Bei OUTER JOINs auf OUTER JOINs oder gar Klammerung sieht es erst ab 5.0.12 gut aus :-)
Freundliche Grüße
Vinzenz
yo,
Verwende UNION, das kann MySQL ab Version 4.0.
besser wäre in seinem falle UNION ALL
Ilja