Aparte de la sintaxis, para el fragmento pequeño, funcionan exactamente igual. Pero si es posible, siempre escriba nuevas consultas usando ANSI-JOINs.
semánticamente, la notación de coma se usa para producir un producto CARTESIANO entre dos tablas, lo que significa producir una matriz de todos los registros de la tabla A con todos los registros de la tabla B, de modo que dos tablas con 4 y 6 24 registros. Usando la cláusula WHERE, puede elegir las filas que realmente desea de este producto cartesiano. Sin embargo, MySQL en realidad no cumple y hace esta gran matriz, pero semánticamente esto es lo que significa.
Una sintaxis de JOIN es el estándar ANSI que define más claramente cómo interactúan las tablas. Al colocar la cláusula ON
junto al JOIN
, deja en claro lo que vincula las dos tablas.
Funcionalmente, realizarán lo mismo para sus dos consultas. La diferencia aparece cuando comienza a usar otros tipos de JOIN [OUTER]
.
Para MySQL específicamente, comas notación does have one difference
STRAIGHT_JOIN es similar a JOIN, excepto que la tabla de la izquierda se lee siempre antes de la tabla de la derecha. Esto se puede usar para aquellos (pocos) casos en los que el optimizador de unión coloca las tablas en el orden incorrecto.
Sin embargo, sería not be wise para aprovechar esta diferencia.
En MySQL, existe una sutil diferencia entre ',' (== 'STRAIGHT_JOIN') y' JOIN'. –
por lo que la notación de coma es la misma que la unión interna? ¿Y el producto cartesiano tomará más recursos y luego se unirá? –
@jason [producto cartesiano] (http://en.wikipedia.org/wiki/Cartesian_product) es una operación matemática entre dos conjuntos, que se utiliza para describir la operación basada en SET en SQL.Sus dos consultas son para todos los propósitos intensivos iguales, por lo que ninguno de los dos requerirá más recursos – RichardTheKiwi