sql >> Base de Datos >  >> RDS >> Mysql

¿Cuál es el comportamiento predeterminado de MySQL JOIN, INTERNO o EXTERNO?

En MySQL escribiendo JOIN no calificado implica INNER JOIN . En otras palabras, el INNER en INNER JOIN es opcional. INNER y CROSS son sinónimos en MySQL. Para mayor claridad escribo JOIN o INNER JOIN si tengo una condición de unión y CROSS JOIN si no tengo una condición.

La sintaxis permitida para combinaciones se describe en la documentación .

El efecto es el mismo, pero la historia detrás de ellos es diferente. La sintaxis de coma es del estándar ANSI-89. Sin embargo, hay una serie de problemas con esta sintaxis, por lo que en el estándar ANSI-92 se introdujo la palabra clave JOIN.

Recomiendo encarecidamente que siempre use la sintaxis JOIN en lugar de la coma.

  • T1 JOIN T2 ON ... es más legible que T1, T2 WHERE ... .
  • Es más fácil de mantener porque las relaciones de la tabla y los filtros están claramente definidos en lugar de mezclarse.
  • La sintaxis JOIN es más fácil de convertir a OUTER JOIN que la sintaxis de coma.
  • Mezclar la sintaxis de coma y JOIN en la misma declaración puede generar errores curiosos debido a las reglas de precedencia.
  • Es menos probable que se cree accidentalmente un producto cartesiano al usar la sintaxis JOIN debido a una cláusula de unión olvidada, porque las cláusulas de unión se escriben junto a las uniones y es fácil ver si falta alguna.