Hallo
Mir ist der Unterschied nicht klar zwischen folgenden beiden Queries:
SELECT *
FROM tabelle1, tabelle2
WHERE tabelle1.id = tabelle2.id
Es gab, glaube ich, Datenbankmanagementsysteme, die nur diese Syntax unterstützten.
und
SELECT *
FROM tabelle1
INNER JOIN tabelle2
ON tabelle1.id = tabelle2.id
das ist die von mir persönlich bevorzugte Syntax, weil sie die JOIN-Bedingung aus den Einschränkungen der WHERE-Klausel hervorhebt.
Liegt der Unterschied lediglich darin, dass JOIN Statements mehr Möglichkeiten bieten? z.B. LEFT OUTER JOIN usw. oder kann ich das auch in Form des ersten SQL-Queries modellieren und wie?
Wenn ja, dann beim OUTER JOIN bestimmt nur umständlich. Warum möchte man das wollen. Theta-Joins sind auch mit WHERE kein Problem. Bei identischen Spaltennamen ist die USING-Syntax besonders elegant (sofern das DBMS sie unterstützt).
Vielleicht hilft Dir mein Archivposting weiter, in dem ich noch eine weitere Variante des INNER JOINS vorstelle.
Grundsätzlich solltest Du die Doku Deines DBMS hinzuziehen, welche JOIN-Syntax unterstützt wird.
PS. Wie kann ich in diesem Forum Codeschnippsel farblich hervorheben?
Bei SQL mit
, bei anderen Sprachen vergleichbar.
Freundliche Grüße
Vinzenz