Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist das standardmäßige MySQL JOIN-Verhalten, INNER oder OUTER?

Schreiben Sie in MySQL JOIN unqualifiziert impliziert INNER JOIN . Mit anderen Worten das INNER in INNER JOIN es ist optional. INNER und CROSS sind Synonyme in MySQL. Zur Verdeutlichung schreibe ich JOIN oder INNER JOIN wenn ich eine Join-Bedingung und CROSS JOIN habe wenn ich keine Bedingung habe.

Die erlaubte Syntax für Joins ist in der Dokumentation beschrieben .

Der Effekt ist derselbe, aber die Geschichte dahinter ist eine andere. Die Kommasyntax stammt aus dem ANSI-89-Standard. Es gibt jedoch eine Reihe von Problemen mit dieser Syntax, daher wurde im ANSI-92-Standard das Schlüsselwort JOIN eingeführt.

Ich würde Ihnen dringend empfehlen, immer Verwenden Sie die JOIN-Syntax anstelle des Kommas.

  • T1 JOIN T2 ON ... ist besser lesbar als T1, T2 WHERE ... .
  • Es ist wartungsfreundlicher, da die Tabellenbeziehungen und Filter klar definiert und nicht gemischt sind.
  • Die JOIN-Syntax lässt sich einfacher in OUTER JOIN umwandeln als die Kommasyntax.
  • Das Mischen der Komma- und JOIN-Syntax in derselben Anweisung kann aufgrund der Vorrangregeln zu merkwürdigen Fehlern führen.
  • Es ist weniger wahrscheinlich, dass bei Verwendung der JOIN-Syntax aufgrund einer vergessenen Join-Klausel versehentlich ein kartesisches Produkt erstellt wird, da die Join-Klauseln neben den Joins stehen und es leicht zu erkennen ist, ob eine fehlt.