Sintaxis SQL

29/05/2006 - 11:48 por solusoft | Informe spam
Hola a todos.

Una curiosidad que tengo, no sé si influirá pero qué sintaxis se tendría que
utilizar para crear Joins en SQL:

Syntax SELECT fname, lname, department FROM names, departments WHERE
names.employeeid = departments.employeeid


o


ANSI JOIN Syntax SELECT fname, lname, department FROM names INNER JOIN
departments ON names.employeeid = departments.employeeid


Influye de alguna forma en el rendimiento de la aplicación la sintaxis que
se utilice o es indiferente?

Gracias anticipadas

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
29/05/2006 - 13:59 | Informe spam
Hola,

Esa es una buena pregunta para un experto en SQL Server ;-)
Yo la respuesta no la sé, pero me imagino que la sintaxis ANSI es más
conveniente porque realza la condición del join, mientras que en la otra la
condición de join está mezclada con las demás combinaciones de filtro de
registros... Pero probablemente el optimizador de consultas genere los
mismos planes en ambos casos.
Por cierto, cuál sería el mejor término para "join" en castellano? Unión,
combinación, encuentro?

Slds - Octavio


"solusoft" escribió en el mensaje
news:
Hola a todos.

Una curiosidad que tengo, no sé si influirá pero qué sintaxis se tendría
que
utilizar para crear Joins en SQL:

Syntax SELECT fname, lname, department FROM names, departments WHERE
names.employeeid = departments.employeeid


o


ANSI JOIN Syntax SELECT fname, lname, department FROM names INNER JOIN
departments ON names.employeeid = departments.employeeid


Influye de alguna forma en el rendimiento de la aplicación la sintaxis que
se utilice o es indiferente?

Gracias anticipadas


Respuesta Responder a este mensaje
#2 Ricardo Passians
29/05/2006 - 14:58 | Informe spam
Mira, quizás para un INNER JOIN no haya diferencia pero para OUTER JOINs he
leído que pueden darse casos de ambiguedad y producirse resultados
inesperados cuando lo usas en el WHERE, además que no es el estándar usar
los joins (combinaciones) en el where. Es mejor no arriesgarse y usarlos
siempre en el FROM.

Adicionalmente a eso, es mas elegante separar las cosas, pensando el FROM
para definir los conjuntos y sus relaciones con otros conjuntos, en cambio ,
el WHERE pensarlo sólo para filtros al conjunto resultante. Verlo así es
hasta más fácil de pensar una solución.

Sobre la eficiencia, puedes verlo analizando el plan de ejecución en cada
caso.



Saludos,



Ricardo



"solusoft" escribió en el mensaje
news:

Hola a todos.

Una curiosidad que tengo, no sé si influirá pero qué sintaxis se tendría
que
utilizar para crear Joins en SQL:

Syntax SELECT fname, lname, department FROM names, departments WHERE
names.employeeid = departments.employeeid


o


ANSI JOIN Syntax SELECT fname, lname, department FROM names INNER JOIN
departments ON names.employeeid = departments.employeeid


Influye de alguna forma en el rendimiento de la aplicación la sintaxis que
se utilice o es indiferente?

Gracias anticipadas


Respuesta Responder a este mensaje
#3 Javier Ros
30/05/2006 - 14:51 | Informe spam
Depende del Motor de SQL, en mi caso siempre he usado
INNER/OUTER/LEFT/RIGTH JOIN pero se me dio el caso
de que en ORACLE el rendimiento baja sobremanera (me quedé flipado, pero es
así).

Entonces te recomiendo hacer pruebas para cada base de datos.


"solusoft" escribió en el mensaje
news:
Hola a todos.

Una curiosidad que tengo, no sé si influirá pero qué sintaxis se tendría
que
utilizar para crear Joins en SQL:

Syntax SELECT fname, lname, department FROM names, departments WHERE
names.employeeid = departments.employeeid


o


ANSI JOIN Syntax SELECT fname, lname, department FROM names INNER JOIN
departments ON names.employeeid = departments.employeeid


Influye de alguna forma en el rendimiento de la aplicación la sintaxis que
se utilice o es indiferente?

Gracias anticipadas


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