Thomas Luethi: -> (MySQL) -> Inner, outter, left, right join || welches ist es?

Beitrag lesen

Hallo,

Kann ich INNER JOIN also meine Variante von oben immer anwenden,
oder brauch ich manchmal auch  RIGHT, LEFT, OUTER und INNER JOIN ?

Fuer eine einfache Verknuepfung reicht Deine Syntax.
Das Wort JOIN muss darin nicht vorkommen.

Ein LEFT JOIN braucht man z.B. wenn man schauen will,
ob gewisse Zeilen der ersten Tabelle keine Zuordnung
in der zweiten Tabelle haben.

Ein Beispiel:

Tabellen:
tabelle1 - id (primary key), bla, foo
tabelle2 - tab2id (primary key), tab1id (foreign key), blabla, foofoo

SELECT tabelle1.* FROM tabelle1
 LEFT JOIN tabelle2
 ON tabelle1.id=tabelle2.tab1id
 WHERE tabelle2.tab2id IS NULL

Soweit ich das verstehe, funktioniert es etwa so:

Der JOIN arbeitet mit folgender "Misch-Tabelle".
tabelle1.id, tabelle1.bla, tabelle1.foo, tabelle2.tab2id, tabelle2.tab1id, tabelle2.blabla, tabelle2.foofoo

Mit dem "JOIN" werden in dieser "Misch-Tabelle" auch Zeilen
fuer die fehlenden Kombinationen "erschaffen" ("erfunden").
In diesen Zeilen ist dann eben tabelle2.tab2id leer, d.h. NULL.

Die LEFT JOIN Geschichte ist schwer zu verstehen.
Aber sie funktioniert. ;-)

Gruesse,

Thomas