Upload
lionel-messi
View
213
Download
0
Embed Size (px)
Citation preview
8/17/2019 Outer Joins
1/11
Outer JoinsTaller de Base de Datos
8/17/2019 Outer Joins
2/11
Outer Join
Es una operación de SQL que tiene como objetivo mostrar el
registro equivalente de una tabla con otra (JOIN NATURAL) y
mantener el registro que no tuvo coincidencia es
correspondido con valores nulos.
Existen tres tipo de Outer Joins
◦ Left Outer Join
◦ Right Outer Join
◦
Full Outer Join
8/17/2019 Outer Joins
3/11
Caso de Estudio
Id Nombre
1 JOSE
2 PEDRO
3 JUAN4 NATAN
Id Nombre
1 CRISTIAN
2 MIGUEL
3 JOSE4 NATAN
TABLA_A TABLA_B
Ante la consulta:
SELECT * FROM TABLA_A A, TABLA_B B
WHERE A.NOMBRE = B.NOMBRE
ID NOMBRE ID NOMBRE
1 JOSE 3 JOSE
3 NATAN 2 NATAN
Resultado JOIN:
8/17/2019 Outer Joins
4/11
Left Outer Join
Left outer join produce el conjunto completo de registros de
la tabla A, con los registros coincidentes (si están disponibles)
en la tabla B. Si no hay coincidencia, el lado derecho
contendrá null.
Consulta:
SELECT * FROM TABLA_A A
LEFT OUTER JOIN TABLA_B B
ON A.NOMBRE = B.NOMBRE
8/17/2019 Outer Joins
5/11
Resultado Left Outer Join
Id Nombre
1 Pirata
2 Mono
3 Ninja
4 Tallarines
Id Nombre
1 Cáscara
2 Ninja
3 Robot
4 Pirata
TABLA_A TABLA_B
ID NOMBRE ID NOMBRE
1 Pirata 4 Pirata
2 Mono Null Null
3 Ninja 2 Ninja
4 Tallarines Null Null
Resultado LEFT OUTER JOIN:
8/17/2019 Outer Joins
6/11
Right Outer Join
Esta operación inversa a la anterior; el resultado de esta
operación siempre contiene todos los registros de la tabla de
la derecha (la segunda tabla que se menciona en la consulta).
Si no hay coincidencia, el lado izquierdo contendrá null.
Consulta:
SELECT * FROM TABLA_A A
RIGHT OUTER JOIN TABLA_B B
ON A.NOMBRE = B.NOMBRE
8/17/2019 Outer Joins
7/11
Resultado Right Outer Join
Id Nombre
1 Pirata
2 Mono
3 Ninja
4 Tallarines
Id Nombre
1 Cáscara
2 Ninja
3 Robot
4 Pirata
TABLA_A TABLA_B
ID NOMBRE ID NOMBRE
1 Cáscara Null Null
2 Ninja 3 Ninja
3 Robot Null Null
4 Pirata 1 Pirata
Resultado RIGHT OUTER JOIN:
8/17/2019 Outer Joins
8/11
Full Outer Join
Full outer join produce el conjunto de todos los registros en
las tablas A y B, con registros coincidentes en ambos lados
cuando sea posible. Si no hay coincidencia, el lado que falta
contendrá null .
Consulta:
SELECT * FROM TABLA_A A
FULL OUTER JOIN TABLA_B B
ON A.NOMBRE = B.NOMBRE
8/17/2019 Outer Joins
9/11
Resultado Right Outer Join
Id Nombre
1 Pirata
2 Mono
3 Ninja
4 Tallarines
Id Nombre
1 Cáscara
2 Ninja
3 Robot
4 Pirata
TABLA_A TABLA_B
ID NOMBRE ID NOMBRE
1 Pirata 4 Pirata
2 Mono Null Null
3 Ninja 2 Ninja
4 Tallarines Null Null
Null Null 1 Cáscara
Null Null 3 Robot
Resultado FULL OUTER JOIN:
8/17/2019 Outer Joins
10/11
Ejercicio
IDN NOMBRE RATING EDAD CIUDAD
22 Pedro 7 45 Concepción
23 Andrés 1 35 Santiago
33 Loreto 8 31 Concepción
29 Natalia 7 40 Santiago
30 Esteban 4 50 Talca
NAVEGANTES
IDN IDB FECHAR
23 102 10.11.2002
22 102 10.11.2002
33 101 05.01.2005
RESERVA
IDB NOMBREB COLOR
101 MARINO AZUL
102 INTER-LAGOS ROJO
103 CLIPPER ROJO
104 INTER-LAGOS VERDE
BOTES
Desarrollar
•LEFT OUTER JOIN (NAVEGANTES-RESERVA)
•RIGHT OUTER JOIN (RESERVA-BOTES)
•FULL OUTER JOIN (RESERVA-BOTES)
8/17/2019 Outer Joins
11/11
¿PREGUNTAS?