Ejemplos Aplicados de Consultas Multitabla
Ejemplos Aplicados de Consultas Multitabla
Ejemplos Aplicados de Consultas Multitabla
Como hemos visto los operadores LEFT JOIN y RIGHT JOIN son otro tipo
de composición de tablas, también denominada composición externa.
Son una extensión del INNER JOIN.
Con una composición interna sólo se obtienen las filas que tienen al
menos una fila de la otra tabla que cumpla la condición, veamos un
ejemplo:
SELECT estudiante.*,ciudad
FROM estudiante, programa
WHERE estudiante.programa = programa.ciudad
Con esta sentencia los estudiante que no tienen una ciudad asignada (un
valor nulo en el campo ciudad de la tabla estudiante) no aparecen en el
resultado .
Pues en los casos en que queremos que también aparezcan las filas que no
tienen una fila coincidente en la otra tabla, utilizaremos el LEFT o RIGHT
JOIN.
Esta operación consiste en añadir al resultado del INNER JOIN las filas de
la tabla de la izquierda que no tienen correspondencia en la otra tabla,
y rellenar en esas filas los campos de la tabla de la derecha con valores
nulos.
Ejemplo:
La sintaxis es la misma que la del INNER JOIN (ver página anterior), lo único
que cambia es la palabra INNER por RIGHT (derecha en inglés).
Esta operación consiste en añadir al resultado del INNER JOIN las filas de la
tabla de la derecha que no tienen correspondencia en la otra tabla,rellenar
en esas filas los campos de la tabla de la izquierda con valores nulos.
BASES DE DATOS 2020-1
Ejemplo:
Con el ejemplo anterior obtenemos una lista de los estudiantes con los
datos de su programa, y además aparece una fila por cada programa que no
está asignado a ningún estudiante con los datos del estudiante a nulos.
Una operación LEFT JOIN o RIGHT JOIN se puede anidar dentro de una
operación INNER JOIN, pero una operación INNER JOIN no se puede anidar
dentro de LEFT JOIN o RIGHT JOIN. Los anidamientos de JOIN de distinta
naturaleza no funcionan siempre, a veces depende del orden en que
colocamos las tablas, en estos casos lo mejor es probar y si no permite el
anudamiento, cambiar el orden de las tablas ( y por tanto de los JOINs)
dentro de la cláusula FROM.