Ir al contenido


Foto

[RESUELTO] Sobre consulta sql


  • Por favor identifícate para responder
20 respuestas en este tema

#21 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 09 septiembre 2011 - 01:01

Hola,
Amigo Édgar, parece que no me di a explicar bien.
Técnicamente un where del tipo TablaA.Campo = TablaB.Campo no es lo mismo que hacer un join sobre dichos campos con esa condición.


Lo que sucede es justo lo que dije al final: los motores de base de datos optimizan y asumen ese where por un join. Se le llama join implícito. Este comportamiento es asumido, por defecto, por la mayoría (sino son todos) los motores de bases de datos tras la llegada del sql-92 que es quizá la mayor corrección del estándar.


La corrección menor, sql-86 había dado los inicios y fue una propuesta justamente de esto: where = join implicito y que no TODOS las siguieron.


Al día de hoy, en la última modificación al stándar sql-2008 en ningún momento se habló y se comentó que el where sea y es equivalente a un join.-Simplemente fue una regla sugerida y propuesta.


Te invito a probar esas consultas en un entorno pre sql-86 y dime si sigue siendo verdadero de que el where = join.
Ha... y te lo comento también porque me pasó en mi trabajo como DBA en un supermercado que utilizaban MS SQL Server 2003. Haciendo consultas con where y joins recibía diferencias.


Lo digo en serio, no es lo mismo. Recibir lo mismo es más una cuestión de puras coincidencias y de como están desarolladas las tablas y la integridad de datos.


Saludos,
  • 0




IP.Board spam blocked by CleanTalk.