Cóż, „lepsze” jest subiektywne. Jest tu trochę stylu. Ale odpowiem na Twoje pytania bezpośrednio.
- Oba robią to samo
- Oba są zgodne z ANSI.
-
Problem z pierwszym przykładem polega na tym, że
-
bardzo łatwo jest nieumyślnie wyprowadzić produkt krzyżowy (ponieważ łatwiej jest pominąć kryteria łączenia)
-
trudne staje się również debugowanie kryteriów łączenia, gdy dodajesz coraz więcej tabel do łączenia
-
odkąd składnia sprzężenia zewnętrznego w starym stylu (*=) jest przestarzała (od dawna udokumentowano, że zwraca niepoprawne wyniki), kiedy trzeba wprowadzić sprzężenia zewnętrzne, trzeba mieszać sprzężenia nowego i starego stylu ... po co promować niespójność?
-
chociaż nie jest to dokładnie autorytet w zakresie najlepszych praktyk, Microsoft zaleca wyraźną składnię INNER/OUTER JOIN
-
z tą drugą metodą:
- używasz spójnej składni łączenia niezależnie od wewnętrznego / zewnętrznego
- trudniejsze (nie niemożliwe) jest przypadkowe wyprowadzenie iloczynu krzyżowego
- odizolowanie kryteriów przyłączenia od kryteriów filtrowania może ułatwić debugowanie
-
Napisałem post, na który wskazał Kevin.