MySQL - OUTER JOIN oder JOIN LEFT ??
uwi
- datenbank
0 Rouven
hallo ,
ich habe 2 tabellen:
tabelle 1 ist eine anschriften tabelle in der es für jeden user
einen eintrag gibt der über die felder IDENT und TYPE eindeutig
bestimmt wird.
tabelle 2 ist eine zusatztabelle in der WENN der user einen
beruf angegeben hat für seine IDENT - TYPE kombination ein
eintrag mit der Berufs ID ( BID ) gemacht wird.
nun gibt es nicht zu allen usern einen berufs eintrag.
ich möchte aber ein resultset haben in dem alle user drin stehen
und wenn sie keinn beruf haben dann steht hat in der spalte
BID eine NULL..
mit meinen normalen "join-künsten" komm ich da leider nicht weiter:
SELECT A.IDENT, A.VORNAME , B.BID FROM ANS A, ANS_BERUF B
WHERE A.IDENT=B.IDENT AND A.TYPE=B.TYPE
das hier liefert mir nur die einträge wo es einen beruf gibt.
kann mir einer erklähren wie das bei mysql funzt ?
ich meine da mal was mit OUTER JOIN oder LEFT JOIN gelesen zu haben
aber die MySQL Doku hat mich da kein stück weiter gebracht.
und falls das wichtig ist , ich würde gerne noch weitere
zusatztabellen auf diese art mit in die abfrage einbauen.
hoffe ich versuche hier nichts unmögliches ..
vielen dank
uwi
Hi,
ich empfehle als Lektüre unsere Join-Artikel, da ist das ganze in anschaulich drin:
In Kurz:
Der Unterschied zwischen LEFT und FULL OUTER besteht in deinem Fall nur darin, dass beim LEFT alle Personen, ob mit oder ohne Berufsbild ausgegeben werden, während der FULL OUTER alle Personen (ob mit oder ohne Berufsbild) UND alle Berufsbilder (ob mit oder ohne Person) ausliefert.
Anschaulich: Alles von links ist in jedem Fall im Ergebnis vs. alles ist in jedem Fall im Ergebnis.
MfG
Rouven