¿Qué es el Left Outer Join en SQL?
Hoy hablaremos del Left Outer Join. El Left Outer Join o Left Join es lo mismo en SQL.En el left outer join, devuelve todos los datos de la tabla izquierda del join. Al mismo tiempo, también coincide con los datos de la tabla de la derecha después de la unión izquierda.
Una cosa más que debe tener en cuenta. Si hay filas disponibles en la tabla del lado izquierdo y no hay datos coincidentes disponibles en la tabla del lado derecho, entonces el conjunto de resultados contendrá sólo valores nulos para ellos.
Sintaxis de la unión exterior izquierda
1
2 3 4 5 6 7 8 |
SELECT lefttable1.columna1,lefttable1.columna2,lefttable2.columna1,….
FROM lefttable1 LEFT JOIN lefttable2 ON lefttable1.matching_column = lefttable2.matching_column; lefttable1: PRIMERA TABLA. tablaizquierda2: SEGUNDA TABLA columna_compatible: COLUMNA común a AMBAS TABLAS. |
La sintaxis anterior es realmente fácil de entender. Ahora, voy a crear dos tablas una para «BOOKCUSTOMERS» y la otra para «ORDERS».¿Cómo utilizar Left Outer Join?Vamos a mostrar un ejemplo práctico de un left outer join sigue conmigo. No voy a hablar de cómo crear una base de datos o una tabla. Asumo que puedes crear dos tablas como las que te mostramos a continuación:
Tabla A: CLIENTES
1
2 3 4 5 6 7 8 9 |
+—-+———-+—–+———–+———-+
| ID | NOMBRE | EDAD | DIRECCIÓN | SALARIO | +—-+———-+—–+———–+———-+ | 1 | SAMUAL | 32 | Austin | 8000.00 | | 2 | Johnson | 25 | Ohio | 9500.00 | | 3 | Mathew | 23 | NEW York | 7000.00 | | 4 | Eva | 25 | Texas | 6500.00 | | 5 | April | 27 | San Marcos| 8500.00 | +—-+———-+—–+———–+———-+ |
Tabla B: PEDIDOS
1
2 3 4 5 6 7 8 |
+—–+———————+—————–+——–+
| OID | FECHA | BOOKCUSTOMER_ID | AMOUNT | +—–+———————+—————–+——–+ | 102 | 2019-12-08 00:00:00 | 3 | 4000 | | 100 | 2019-09-08 00:00:00 | 3 | 3500 | | 101 | 2019-08-20 00:00:00 | 2 | 6560 | | 103 | 2018-05-20 00:00:00 | 4 | 2060 | +—–+———————+—————–+——–+ |
Ahora, vamos a unir estas dos tablas con la ayuda del left outer join para acceder a los datos de la tabla.
Consulta SQL para el Left Outer Join:
1
2 3 4 |
SQL> SELECT ID, NAME, AMOUNT
FROM BOOKCUSTOMERS LEFT JOIN ORDERS ON BOOKCUSTOMERS.ID = ORDERS.BOOKCUSTOMER_ID; |
En la línea 1, estamos seleccionando las columnas que queremos mostrar en nuestro resultado final de la tabla «BOOKCUSTOMERS».Ahora en la línea 3, usamos la palabra clave «Left Join» para usar Left Join en nuestra consulta.
En la última línea, estamos haciendo coincidir las columnas de la tabla 1 con la columna de la tabla 2. En nuestro caso, estamos haciendo coincidir «CLIENTES.ID» con «PEDIDOS.CLIENTE_ID».
Resultado
Ahora puedes ver el resultado final a continuación:
1
2 3 4 5 6 7 8 9 10 11 |
+—-+———-+——–+
| ID | NAME | AMOUNT | +—-+———-+——–+ | 1 | SAMUAL | NULL | | 2 | Johnson | 6560 | | 3 | Mathew | 4000 | | 3 | Mathew | 3500 | | 2 | John | 6560 | | 4 | Eva | 2060 | | 5 | April | NULL | +—-+———-+——–+ |