Outer Joins

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?