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

Cláusula INNER JOIN ON vs WHERE

INNER JOIN es la sintaxis ANSI que debe usar.

Por lo general, se considera más legible, especialmente cuando se une a muchas tablas.

También se puede reemplazar fácilmente con OUTER JOIN siempre que surja una necesidad.

El WHERE la sintaxis está más orientada al modelo relacional.

Un resultado de dos tablas JOIN ed es un producto cartesiano de las tablas a las que se aplica un filtro que selecciona solo aquellas filas con coincidencia de columnas de unión.

Es más fácil ver esto con WHERE sintaxis.

En cuanto a su ejemplo, en MySQL (y en SQL en general) estas dos consultas son sinónimos.

Además, tenga en cuenta que MySQL también tiene un STRAIGHT_JOIN cláusula.

Usando esta cláusula, puede controlar el JOIN order:qué tabla se escanea en el bucle externo y cuál en el bucle interno.

No puede controlar esto en MySQL usando WHERE sintaxis.