Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Left Outer Join (https://www.clubdelphi.com/foros/showthread.php?t=91917)

Gregorio Cíber 02-06-2017 17:55:13

Left Outer Join
 
¡Hola amigos!
Estoy intentando recabar información acerca de la forma correcta de escribir la sentencia LEFT OUTER JOIN en Firebird. Me refiero a cómo debe ponerse el código que sin a ON para que sea más eficiente y he encontrado, incluso aquí, ejemplos de las dos formas posibles.

Ejemplo 1:
Código Delphi [-]
SELECT A.CAMPO1. B.CAMPO1
FROM tabla A
LEFT OUTER JOIN tabla_join B ON (A.cid_campo = B.enl_cid_campo)

Ejemplo 2:
Código Delphi [-]
SELECT A.CAMPO1, B.CAMPO1
FROM tabla A
LEFT OUTER JOIN tabla_join B ON (B.enl_cid_campo = A.cid_campo)

Creo que la forma correcta es la 1, pero insisto en que lo he visto escrito en multitud de sitios de ambas maneras. Así que recurro a los expertos.

Gracias.

Casimiro Notevi 02-06-2017 18:00:41

Uummm... es algo que a veces también lo he pensado, pero no he dedicado mucho tiempo a ello, a ver si alguien lo sabe.

Gregorio Cíber 02-06-2017 18:25:34

He hecho una consulta compleja con tablas que tienen cientos de miles de registros usando la sintaxis 1 y ha tardado 19 segundos, aproximadamente. Usando la sintaxis 2 tardó 29 segundos, también aproximadamente. Aunque la prueba no es definitiva, parece que la opción 1 es más efectiva que la 2.
A ver qué piensa el personal.
Saludos.

Casimiro Notevi 02-06-2017 18:30:09

Supongo que dependerá de los campos involucrados, si tienen índice o no, si el primero tiene menos registros que el segundo, etc.


La franja horaria es GMT +2. Ahora son las 07:12:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi