2012-07-18 9 views
14

tengo dos seleccione unirse a las sentencias SQL:combinación interna y donde en unirse seleccione instrucción SQL

select a.id from table_a as a, table_b as b where a.id=b.id; 
select a.id from table_a as a inner join table_b as b on a.id=b.id; 

Obviamente, ellos son los mismos en consecuencia. Pero hay alguna diferencia entre ellos, como el rendimiento, la portabilidad.

+0

No está claro por su pregunta si se está refiriendo a SQL como un lenguaje implementado en muchos sistemas DB, o SQL Server, el producto Microsoft. –

+0

Para la mayoría de los DBRMS, como MySQL, SQL Server, Oracle, DB2 –

Respuesta

16

Una diferencia es que la primera opción oculta el intento expresando la condición de unión en la cláusula where.

La segunda opción, donde se escribe la condición de unión, es más clara para el usuario que lee la consulta. Muestra el propósito exacto de la consulta.

En cuanto a rendimiento o cualquier otra diferencia, no debería haber ninguna. Ambas consultas deben devolver exactamente el mismo resultado y realizar el mismo bajo la mayoría de RDBMS.

0

Ambos son SQL estándar. Diferentes sistemas DB pueden optimizarlos de manera diferente, pero como son muy simples, me sorprendería un poco si lo hicieran. Pero esa es la naturaleza de SQL: es declarativo, lo que le da a la implementación una gran libertad de acción para ejecutar su consulta. No hay garantía de que estos realicen lo mismo, o si son diferentes, que es más rápido.

+0

Ha dicho que no hay garantía de que estos sean iguales. ¿Podría dar un ejemplo? –

+0

Lo siento, quise decir, "no hay garantía de que estos realicen lo mismo", he solucionado mi respuesta. –

0

Son exactamente los mismos en el servidor SQL. No hay diferencia de rendimiento

3

La sintaxis de combinación interna se agregó a SQL en algún momento de la década de 1990. Es posible, pero poco probable, que el optimizador pueda hacerlo mejor que con la sintaxis anterior que usaba la cláusula where para la condición de unión.

Ambos deberían ser muy portátiles, tal como están ahora.

La sintaxis de unión interna es preferible porque es más fácil para el lector, como otros ya han comentado.

Cuestiones relacionadas