Página 1 de 1

Consulta sintaxis INNER JOIN

NotaPublicado: Mar Abr 02, 2013 5:34 pm
por cmrm
Buenos dias tengo una consulta con respecto al ejemplo de la leccion 15, en esta se muestra la sintaxis para la union de 3 tablas, siendo esta:

select C.TITULO CURSO , concat(A.APELLIDOS,', ',A.NOMBRE ) ALUMNO
from ALUMNOS_CURSOS AC inner join ALUMNOS A
on AC.ID_ALUMNO = A.ID_ALUMNO inner join CURSOS C
on AC.ID_CURSO = C.ID_CURSO
order by C.TITULO , A.NOMBRE , A.APELLIDOS

mi duda en este caso es porque en la clausula from, se coloca inner join entre el nombre de dos tablas, mas para unir la tercera ya no se hace en la clausula from sino que veo que en la condicionante on . Entonces quisiera me aclararan si en la clausula from solamente se puede unir dos tablas y si hubieran mas se debe hacer con las condicionanes on ? Espero haber colocado mi duda de forma clara, por favor si no esta clara comentarlo y yo lo replanteo.

Re: Consulta sintaxis INNER JOIN

NotaPublicado: Jue Abr 11, 2013 9:31 am
por Pere
Hola cmrm

Fijate que si abstraemos el concepto de tabla entonces podemos plantearlo del siguiente modo: primero hacemos join entre dos tablas, esto se puede ver como una sola tabla, y sobre este resultado hacemos join con una tercera tabla.

Te pongo el ejemplo que adjuntas cerrando entre parentesis el resultado de reunir las dos primeras tablas, para despues hacer join con una tercera.

select C.TITULO CURSO , concat(A.APELLIDOS,', ',A.NOMBRE ) ALUMNO
from ( ALUMNOS_CURSOS AC inner join ALUMNOS A
on AC.ID_ALUMNO = A.ID_ALUMNO )
inner join CURSOS C
on AC.ID_CURSO = C.ID_CURSO
order by C.TITULO , A.NOMBRE , A.APELLIDOS

Lo que está en negrita puedes verlo como una sola tabla resultado de reunir ALUMNOS_CURSOS con ALUMNOS.

Espero haber resuleto tus dudas

saludos