Hallo
ich habe 2 Tabellen : Adresse und PLZ.
wenn z.b. eine Abfrage mache wie folgt:
select A.strasse, P.plz from Adresse A
inner join t_plz P ON A.plzid = P.id
dann bekomme ich nur die Strassen zurück, die auch einen
Eintrag in der PLZ Tabelle haben - wie bekomme ich alle, selbst, wenn diese keine Einträge in der PLZ haben?
Geht das mit Left Join oder sowas?
Danke für Eure Hilfe!
Hallo Connie_,
genau das ist die Lösung. Wenn du left join nutzt werden alle Adressdatensätze ausgegeben, auch wenn keine PLZ dazu vorhanden ist. Die Felder der PLZ-Tabelle sind dann mit null gefüllt.
Viele Grüße
Alex
Hallo,
versuch mal bei
A.plzid = P.id
ein (+) anzuhängen.
Hier werden dann alle ausgegeben.
mfg Wolfgang
Hallo Connie,
richtig, ein Left Join hilft dir da weiter. Einfach das „inner“ durch „left“ ersetzen:
select A.strasse, P.plz from Adresse A
left join t_plz P ON A.plzid = P.id
Hallo
ich habe 2 Tabellen : Adresse und PLZ.
wenn z.b. eine Abfrage mache wie folgt:
select A.strasse, P.plz from Adresse A
inner join t_plz P ON A.plzid = P.id
dann bekomme ich nur die Strassen zurück, die auch einen
Eintrag in der PLZ Tabelle haben - wie bekomme ich alle,
selbst, wenn diese keine Einträge in der PLZ haben?
Geht das mit Left Join oder sowas?
Genau ! Wenn man statt „inner join“ den Ausdruck „left outer join“ verwendet, müssten im Ergebnis auch alle
Inhalte der „linken“ Tabelle (also hier: Adresse)
erscheinen, für die in t_plz kein korrespondierender
Eintrag existiert.
danke für die vielen Antworten - es war nur eine reine Verständnisfrage - die Tabellen exisitieren nicht 
Also wäre ein LEFT OUTER JOIN richtig?
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Habe z.B 2 Tabellen zum Testen angelegt. eine Tabelle
ADRESSE, die unter anderem das Feld STRASSE enthält und
eine Tabelle PLZ, welche unter anderem plz_id und STRASSE
enthält. In der Tabelle ADRESSE sind Einträge mit
Strassennamen enthalten, die es in der PLZ nicht gibt.
Mit folgender Abfrage bekomme ich dennoch alle
Strasseneinträge aus der Tabelle ADRESSE angezeigt.
select a.strasse, b.plz_id from Adresse
as a left outer join plz as b on a.strasse=b.strasse
Die Syntax ist die für mysql. Bei anderen Datenbanken gibt
es da durchaus Abweichungen in der Syntax für einen JOIN.