Diferencia entre unión externa izquierda, derecha y completa

El sistema de gestión de bases de datos (DBMS) permite recuperar datos de más de una tabla mediante combinaciones.

Las uniones son principalmente productos cartesianos de dos o más relaciones (o tablas).

Las combinaciones SQL se clasifican ampliamente como combinación interna y combinación externa . Inner Join selecciona filas de las tablas que cumplen la condición de unión. Pero al usar la unión interna, los datos específicamente se pierden las filas de ambas tablas que no cumplen la condición. Outer Join se puede utilizar para evitar la pérdida de datos de las tablas.

Tipos de combinación externa:
la combinación externa se clasifica nuevamente en 3 tipos: combinación externa izquierda, combinación externa derecha y combinación externa completa. Estos se explican a continuación a continuación.

  1. Left Outer Join:
    Left Outer Join devuelve todas las filas de la tabla de la izquierda y las columnas de la tabla de la derecha tienen relleno nulo. Left Outer Join recupera todas las filas de ambas tablas que cumplen la condición de combinación junto con las filas no coincidentes de la tabla izquierda.

    Sintaxis:

    SELECT [column1, column2, ....]
    FROM   table1
    
    LEFT OUTER JOIN table2 ON 
    table1.matching_column = table2.matching_column
    
    WHERE [condition]; 

    O

    SELECT [column1, column2, ....]
    FROM   table1
    
    LEFT OUTER JOIN table2 
    ON table1.matching_column = table2.matching_column
    
    WHERE [condition]; 

    Representación esquemática:

  2. Right Outer Join:
    Right Outer Join devuelve todas las filas de la tabla de la derecha y las columnas de la tabla de la izquierda tienen relleno nulo. Right Outer Join recupera todas las filas de ambas tablas que cumplen la condición de combinación junto con las filas no coincidentes de la tabla derecha.

    Sintaxis:

    SELECT [column1, column2, ....]
    FROM   table1
    
    RIGHT OUTER JOIN table2 ON 
    table1.matching_column = table2.matching_column
    
    WHERE [condition]; 

    O,

    SELECT [column1, column2, ....]
    FROM   table1
    
    RIGHT OUTER JOIN table2 
    ON table1.matching_column(+) = table2.matching_column
    
    WHERE [condition]; 

    Representación esquemática:

  3. Full Outer Join:
    Full Outer Join devuelve todas las filas de la tabla. Cuando no existen filas coincidentes para la fila de la tabla de la izquierda, las columnas de la tabla de la derecha se rellenan con nulos. De manera similar, cuando no existen filas coincidentes para la fila de la tabla de la derecha, las columnas de la tabla de la izquierda se rellenan con nulos. La combinación externa completa es la unión de la combinación externa izquierda y la combinación externa derecha.

    Sintaxis:

    SELECT [column1, column2, ....]
    FROM   table1
    
    FULL OUTER JOIN table2 
    ON table1.matching_column = table2.matching_column
    
    WHERE [condition]; 

    Representación esquemática:

Ejemplo:
Considere la siguiente tabla de empleados,

EMPID NOMBRE EMPDEPTO SALARIO
101 amanda Desarrollo 50000
102 Diana HORA 40000
103 bruce Diseño 30000
104 Steve Pruebas 35000
105 roger Analista 10000

Tabla de departamentos:

DEPTID NOMBREDEPT UBICACIÓN
10 Desarrollo Nueva York
11 Diseño Nueva York
12 Pruebas Washington
13 Mesa de ayuda los Angeles

Ahora,
1. Consulta de combinación externa izquierda:

Select empid, ename, deptid, deptname 
from employee 
left outer join department 
on employee.empdept = department.deptname; 

Producción:

EMPID NOMBRE DEPTID NOMBREDEPT
101 amanda 10 Desarrollo
103 bruce 11 Diseño
104 Steve 12 Pruebas
102 Diana nulo nulo
105 roger nulo nulo

2. Consulta de unión externa derecha:

Select empid, ename, deptid, deptname 
from employee right outer join department 
on employee.empdept = department.deptname;

EMPID NOMBRE DEPTID NOMBREDEPT
101 amanda 10 Desarrollo
103 bruce 11 Diseño
104 Steve 12 Pruebas
nulo nulo 13 Mesa de ayuda

3. Consulta de unión externa completa:

Select empid, ename, deptid, deptname 
from employee full outer join department 
on employee.empdept = department.deptname;

EMPID NOMBRE DEPTID NOMBREDEPT
101 amanda 10 Desarrollo
103 bruce 11 Diseño
104 Steve 12 Pruebas
102 Diana nulo nulo
105 roger nulo nulo
nulo nulo 13 Mesa de ayuda

Diferencias entre la combinación externa izquierda, la combinación externa derecha y la combinación externa completa:

Izquierda combinación externa Unión exterior derecha Unión exterior completa
Obtiene todas las filas de la tabla de la izquierda Obtiene todas las filas de la tabla de la derecha Obtiene todas las filas de ambas tablas.
Unión interna +
todas las filas no coincidentes de la tabla de la izquierda
Unión interna +
todas las filas no coincidentes de la tabla de la derecha
Unión interna +
todas las filas no coincidentes de la tabla izquierda +
todas las filas no coincidentes de la tabla derecha
Se pierden los datos no coincidentes de la tabla derecha Los datos no coincidentes de la tabla de la izquierda se pierden No se pierde ningún dato
SELECCIONE [columna1, columna2, ….]
DESDE tabla1
IZQUIERDA EXTERNA ÚNASE tabla2 EN
tabla1.columna_coincidente = tabla2.columna_coincidente
SELECCIONE [columna1, columna2, ….]
DESDE tabla1 UNIÓN EXTERNA
DERECHA tabla2 EN
tabla1.columna_coincidente = tabla2.columna_coincidente
SELECCIONE [columna1, columna2, ….]
DE table1
FULL OUTER JOIN table2 ON
table1.matching_column = table2.matching_column

Publicación traducida automáticamente

Artículo escrito por Shreyasi_Chakraborty y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *