Naja, "besser" ist subjektiv. Hier gibt es Stil. Aber ich werde direkt auf Ihre Fragen eingehen.
- Beide verhalten sich gleich
- Beide sind ANSI-konform.
-
Das Problem mit dem ersten Beispiel ist, dass
-
es ist sehr einfach, versehentlich das Kreuzprodukt abzuleiten (da es einfacher ist, Join-Kriterien wegzulassen)
-
Es wird auch schwierig, die Join-Kriterien zu debuggen, wenn Sie dem Join immer mehr Tabellen hinzufügen
-
da die alte Outer-Join-Syntax (*=) veraltet ist (es ist seit langem dokumentiert, dass sie falsche Ergebnisse zurückgibt), müssen Sie, wenn Sie Outer-Joins einführen müssen, New-Style- und Old-Style-Joins mischen ... warum fördern Inkonsistenz?
-
Obwohl es nicht gerade die Autorität für bewährte Verfahren ist, empfiehlt Microsoft die explizite INNER/OUTER JOIN-Syntax
-
mit letzterer Methode:
- Sie verwenden eine konsistente Join-Syntax, unabhängig von Inner/Outer
- Es ist schwieriger (nicht unmöglich), versehentlich das Kreuzprodukt abzuleiten
- Das Isolieren der Join-Kriterien von den Filterkriterien kann das Debuggen erleichtern
-
Ich habe den Beitrag geschrieben, auf den Kevin gezeigt hat.