Bueno, "mejor" es subjetivo. Hay algo de estilo aquí. Pero abordaré sus preguntas directamente.
- Ambos realizan lo mismo
- Ambos cumplen con ANSI.
-
El problema con el primer ejemplo es que
-
es muy fácil derivar inadvertidamente el producto cruzado (ya que es más fácil omitir los criterios de unión)
-
también se vuelve difícil depurar los criterios de combinación a medida que agrega más y más tablas a la combinación
-
dado que la sintaxis de unión externa de estilo antiguo (*=) ha quedado obsoleta (se ha documentado durante mucho tiempo que arroja resultados incorrectos), cuando necesita introducir uniones externas, necesita mezclar uniones de estilo nuevo y estilo antiguo ... ¿por qué promover incoherencia?
-
Si bien no es exactamente la autoridad en mejores prácticas, Microsoft recomienda una sintaxis explícita de INNER/OUTER JOIN
-
con el último método:
- está utilizando una sintaxis de unión coherente independientemente de si es interior/exterior
- es más difícil (no imposible) derivar accidentalmente el producto vectorial
- aislar los criterios de combinación de los criterios de filtro puede facilitar la depuración
-
Escribí la publicación que señaló Kevin.