Orden de campos de enlace en un JOIN

07/11/2005 - 15:34 por Mario | Informe spam
Hola, tengo una duda que nadie me sabe resolver con seguridad.
En un JOIN de Tabla1 y Tabla 2, en el ON qué campo debo poner primero?
Ej:

SELECT A.Nombre, B.Telefono
FROM Personas A INNER JOIN Telefonos B
ON A.Codigo = B.Codigo

o es mejor:

SELECT A.Nombre, B.Telefono
FROM Personas A INNER JOIN Telefonos B
ON B.Codigo = A.Codigo

Las dos funcionan igual, pero ¿qué es lo correcto?, ¿por qué? ¿obtendría
mejor rendimiento con qué opción?

Muchas gracias por vuestra atención.
Un saludo.

Preguntas similare

Leer las respuestas

#6 Miguel Egea
07/11/2005 - 16:58 | Informe spam
Hero, no se quien dedujo esto, pero está equivocado. El equipo del SQL
Query processor, compila esta sintaxis y la ejecutará de la misma forma
pongas el orden que pongas.

En algunas versiones de Oracle y dependiendo de como hicieses estos joins si
que existía alguna recomendación parecida a lo que comentas, pero SQL esto
no tiene importancia.


Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"


"Hero" wrote in message
news:
Maxi,

Hace un tiempo atras, muy atras, en este mismo foro se comento cual era
la mejor manera de hacer ello, y resulto que de tanta discusión del tema,
era que en programación se define que todo lo que va a la derecha será
comparado por su condicionante perteneciente a la izquierda, o bien, todo
valor de la izquierda será almacenado en su variable de la izquierda.

Es por ello que por eso de definió que esa era la mejor forma, ahora de
que
dañe o no la performance, eso si que no creo que suceda.

Saludos.

Hero.

"Maxi" escribió en el mensaje
news:
Hola, porque dices eso? cual es la diferencia en ponerlo de la otra


manera?


Salu2
Maxi [MVP SQL SERVER]


"Hero" escribió en el mensaje
news:
> Hola Mario,
>
> Dado que la TABLA 2 es la que se REQUIERE unir con la TABLA 1, es
> que
> debe IR el campo referencia de la tabla 2 primero y luego el campo de
> la
> tabla 1, osea, a la que se quiere hacer JOIN.
>
> Saludos
>
> Hero.
>
>
> "Mario" escribió en el mensaje
> news:
>> Hola, tengo una duda que nadie me sabe resolver con seguridad.
>> En un JOIN de Tabla1 y Tabla 2, en el ON qué campo debo poner primero?
>> Ej:
>>
>> SELECT A.Nombre, B.Telefono
>> FROM Personas A INNER JOIN Telefonos B
>> ON A.Codigo = B.Codigo
>>
>> o es mejor:
>>
>> SELECT A.Nombre, B.Telefono
>> FROM Personas A INNER JOIN Telefonos B
>> ON B.Codigo = A.Codigo
>>
>> Las dos funcionan igual, pero ¿qué es lo correcto?, ¿por qué?


¿obtendría
>> mejor rendimiento con qué opción?
>>
>> Muchas gracias por vuestra atención.
>> Un saludo.
>
>






Respuesta Responder a este mensaje
#7 Maxi
07/11/2005 - 18:39 | Informe spam
Hola, una cosa es prolijidad y la otra es que sea mejor porque el SQL lo usa
mejor!! en este sentido coincido 100% con Miguel


Salu2
Maxi [MVP SQL SERVER]


"Hero" escribió en el mensaje
news:
Maxi,

Hace un tiempo atras, muy atras, en este mismo foro se comento cual era
la mejor manera de hacer ello, y resulto que de tanta discusión del tema,
era que en programación se define que todo lo que va a la derecha será
comparado por su condicionante perteneciente a la izquierda, o bien, todo
valor de la izquierda será almacenado en su variable de la izquierda.

Es por ello que por eso de definió que esa era la mejor forma, ahora de
que
dañe o no la performance, eso si que no creo que suceda.

Saludos.

Hero.

"Maxi" escribió en el mensaje
news:
Hola, porque dices eso? cual es la diferencia en ponerlo de la otra


manera?


Salu2
Maxi [MVP SQL SERVER]


"Hero" escribió en el mensaje
news:
> Hola Mario,
>
> Dado que la TABLA 2 es la que se REQUIERE unir con la TABLA 1, es
> que
> debe IR el campo referencia de la tabla 2 primero y luego el campo de
> la
> tabla 1, osea, a la que se quiere hacer JOIN.
>
> Saludos
>
> Hero.
>
>
> "Mario" escribió en el mensaje
> news:
>> Hola, tengo una duda que nadie me sabe resolver con seguridad.
>> En un JOIN de Tabla1 y Tabla 2, en el ON qué campo debo poner primero?
>> Ej:
>>
>> SELECT A.Nombre, B.Telefono
>> FROM Personas A INNER JOIN Telefonos B
>> ON A.Codigo = B.Codigo
>>
>> o es mejor:
>>
>> SELECT A.Nombre, B.Telefono
>> FROM Personas A INNER JOIN Telefonos B
>> ON B.Codigo = A.Codigo
>>
>> Las dos funcionan igual, pero ¿qué es lo correcto?, ¿por qué?


¿obtendría
>> mejor rendimiento con qué opción?
>>
>> Muchas gracias por vuestra atención.
>> Un saludo.
>
>






Respuesta Responder a este mensaje
#8 Saul Batista
07/11/2005 - 20:37 | Informe spam
En esto tambien coincido 100% con Miguel y Maxi!

[]'s

Saul Batista

"Maxi" wrote in message
news:
Hola, una cosa es prolijidad y la otra es que sea mejor porque el SQL lo
usa mejor!! en este sentido coincido 100% con Miguel


Salu2
Maxi [MVP SQL SERVER]


"Hero" escribió en el mensaje
news:
Maxi,

Hace un tiempo atras, muy atras, en este mismo foro se comento cual
era
la mejor manera de hacer ello, y resulto que de tanta discusión del tema,
era que en programación se define que todo lo que va a la derecha será
comparado por su condicionante perteneciente a la izquierda, o bien, todo
valor de la izquierda será almacenado en su variable de la izquierda.

Es por ello que por eso de definió que esa era la mejor forma, ahora de
que
dañe o no la performance, eso si que no creo que suceda.

Saludos.

Hero.

"Maxi" escribió en el mensaje
news:
Hola, porque dices eso? cual es la diferencia en ponerlo de la otra


manera?


Salu2
Maxi [MVP SQL SERVER]


"Hero" escribió en el mensaje
news:
> Hola Mario,
>
> Dado que la TABLA 2 es la que se REQUIERE unir con la TABLA 1, es
> que
> debe IR el campo referencia de la tabla 2 primero y luego el campo de
> la
> tabla 1, osea, a la que se quiere hacer JOIN.
>
> Saludos
>
> Hero.
>
>
> "Mario" escribió en el mensaje
> news:
>> Hola, tengo una duda que nadie me sabe resolver con seguridad.
>> En un JOIN de Tabla1 y Tabla 2, en el ON qué campo debo poner
>> primero?
>> Ej:
>>
>> SELECT A.Nombre, B.Telefono
>> FROM Personas A INNER JOIN Telefonos B
>> ON A.Codigo = B.Codigo
>>
>> o es mejor:
>>
>> SELECT A.Nombre, B.Telefono
>> FROM Personas A INNER JOIN Telefonos B
>> ON B.Codigo = A.Codigo
>>
>> Las dos funcionan igual, pero ¿qué es lo correcto?, ¿por qué?


¿obtendría
>> mejor rendimiento con qué opción?
>>
>> Muchas gracias por vuestra atención.
>> Un saludo.
>
>










email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida