No, "lepší" je subjektivní. Je zde určitý styl. Ale na vaše otázky se odpovím přímo.
- Oba fungují stejně
- Oba jsou v souladu s ANSI.
-
Problém s prvním příkladem je, že
-
je velmi snadné neúmyslně odvodit křížový produkt (protože je snazší vynechat kritéria spojení)
-
je také obtížné ladit kritéria spojení, protože do spojení přidáváte další a další tabulky
-
protože syntaxe vnějšího spojení ve starém stylu (*=) byla zastaralá (už dlouho bylo zdokumentováno, že vrací nesprávné výsledky), když potřebujete zavést vnější spojení, musíte smíchat nový styl a spojení starého stylu ... proč propagovat nekonzistence?
-
ačkoli to není zrovna autorita ohledně osvědčených postupů, Microsoft doporučuje explicitní syntaxi INNER/OUTER JOIN
-
pomocí druhé metody:
- používáte konzistentní syntaxi spojení bez ohledu na vnitřní / vnější
- je těžší (ne nemožné) náhodně odvodit křížový produkt
- oddělení kritérií spojení od kritérií filtru může usnadnit ladění
-
Napsal jsem příspěvek, na který Kevin poukázal.