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