Programación en castellano
Inicio > Foros > SQL Server > Duda Sentencia SQL
-Foros de debate

SQL Server
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Duda Sentencia SQL
Enviado por Sembei el día 24 de mayo de 2006

Hola a tod@s.

Tengo una duda respecto a la manera de actuar del sql.
Estoy trabajando con varias tablas a la vez.
¿Da igual escribir todas las tablas en el FROM que utilizar JOIN's?.
Internamente he comprobado que cuando escribo todas las tablas en el FROM el compilador me reinterpreta (parsea) la sentencia y me la convierte a JOIN's.

Yo tenía entendido que cuando utilizabas FROM primero te trae todos los datos de todas las tablas y luego filtra según lo indicado en el WHERE. Cuando utilizas JOIN no te trae todos los datos de todas las tablas, filtra primero en función de las claves y luego vuelve a filtrar otra vez según lo indicado en el WHERE.

¿El rendimiento es el mismo?.

Un saludo.

Ejm:

select ... from t1, t2, t3, t4, t5 where t1.1=t2.1 and t2.2=t3.2 ....
select ... from t1 inner join t2 ... inner join t3 ... inner join t4 ... inner join t5 ... where ...

 
Re: Duda Sentencia SQL
Enviado por santiago el día 25 de mayo de 2006

yo tenia esa duda tambien, pero creo que poner las tablas en el from solo te simula un join, en caso de querer hacer un right join, o un left join no te va a dar los mismos resultados

 
Re: Re: Duda Sentencia SQL
Enviado por Abed Nego el día 2 de junio de 2006

Cuando pones varias tablas en el from, te muestra todas las combinaciones posibles de todas las filas de las tablas introducidad. Así por ejemplo, si se ponen dos tablas de 10 filas en el from, aparecerá una búsqueda con 100 filas. O lo que es lo mismo, 10^2.
Lo que ocurre es que SQL Server introduce automaticamente los joins debido a las reglas de clave ajena que ya se han introducido en el modo diseño. No hay diferencia de rendimiento, puesto que con join o sin join, siempre hace lo mismo: Combina todas las filas de todas las columnas, y luego comprueba si las claves ajenas y primarias de las tablas coinciden. Si se ponen varias tablas en el From y no se ponen condiciones en el Where, aparecerán tantas filas como el resultado de multiplicar todas las filas de cada tabla que se introduce en el From.

 



Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad
Mantenida por: Claudio y Dani.

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | amor | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | gratis | posicionamiento en buscadores | decoración libre | gifs animados