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)
-   -   Duda en consulta en firebird 2.5 con 3 tablas (https://www.clubdelphi.com/foros/showthread.php?t=85247)

NISOTO 19-02-2014 20:39:40

Duda en consulta en firebird 2.5 con 3 tablas
 
Hola a todos,
Tengo una inquietud para ver si me pueden orientar en esto

Tengo esta consulta en firebird 2.5, con 3 tablas (NOTAS, ALUMNOS, GIMNASIO)


select
N.ESTUDIANTE, N.AULA, N.PERIODO, N.ACTUAL, A.NOMBRES, A.APELLIDOS, G.ANUAL
from
NOTAS N, ALUMNOS A, GIMNASIO G
where
N.ESTUDIANTE=A.ID_ALUMNO and N.PERIODO=G.ANUAL

Mi pregunta es si este codigo lo puedo mejorar con JOIN para que funcione mejor.

Ok, gracias

TiammatMX 19-02-2014 21:20:48

Cita:

Empezado por NISOTO (Mensaje 472832)
...Mi pregunta es si este codigo lo puedo mejorar con JOIN para que funcione mejor...

¡¡Por supuesto que sí!! Todo código es mejorable y mientras más óptimo sea un enunciado SQL, menos tiempo y carga de servidor utilizará. Sin dudarlo, usa JOIN's...

NISOTO 20-02-2014 19:23:24

Ok, gracias.

roman 20-02-2014 20:12:22

Cita:

Empezado por NISOTO (Mensaje 472832)

Mi pregunta es si este codigo lo puedo mejorar con JOIN para que funcione mejor.

De hecho, ya estás usando un JOIN (implícito).Tu consulta SQL es equivalente a esta otra:

Código SQL [-]
select
  N.ESTUDIANTE, N.AULA, N.PERIODO, N.ACTUAL, A.NOMBRES, A.APELLIDOS, G.ANUAL
from
  NOTAS N
inner join ALUMNOS A on N.ESTUDIANTE=A.ID_ALUMNO
inner join GIMNASIO G on N.PERIODO=G.ANUAL

Si por alguna razón sientes que la consulta es lenta, entonces lo que tienes que revisar son los índices. Por ejemplo, que tu tabla de NOTAS tenga un índice sobre el campo ESTUDIANTE.

// Saludos

NISOTO 21-02-2014 06:20:06

Gracias Roman,

El metodo con los Join funciona mas veloz que el anterior.

No pense que SQL fuera tan potente, de haberlo sabido hubiera dejado las tablas planas desde un principio.

Casimiro Notevi 21-02-2014 10:08:05

Cita:

Empezado por NISOTO (Mensaje 472880)
No pense que SQL fuera tan potente, de haberlo sabido hubiera dejado las tablas planas desde un principio.

No hay comparación.


La franja horaria es GMT +2. Ahora son las 19:03:57.

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