SQL OUTER JOIN (Español)
Resumen: en este tutorial, aprenderá a usar SQL External join, incluyendo la combinación externa izquierda, la combinación externa derecha y unión externa completa.
Si desea aprender sobre SQL INNER JOIN, consulte el tutorial de SQL INNER JOIN.
Hay tres tipos de OUTER JOIN: unión externa izquierda, unión externa derecha unión externa y unión externa completa. Examinemos cada tipo de combinación con más detalle.
SQL OUTER JOIN: combinación externa izquierda
La combinación externa izquierda de SQL también se conoce como combinación izquierda de SQL. Supongamos que queremos unir dos tablas: A y B. La unión externa izquierda de SQL devuelve todas las filas de la tabla izquierda (A) y todas las filas coincidentes que se encuentran en la tabla derecha (B). Significa que el resultado de la combinación izquierda de SQL siempre contiene las filas de la tabla de la izquierda.
Lo siguiente ilustra la sintaxis externa izquierda de SQL de unir 2 tablas: table_A y table_B:
1
2
3
4
|
SELECT column1, column2 …
FROM table_A
LEFT JOIN table_B ON join_condition
WHERE row_condition
|
SQL OUTER JOIN – ejemplo de combinación externa izquierda
La siguiente consulta selecciona todos los clientes y sus pedidos:
1
2
3
4
5
6
|
SELECCIONAR c.customerid,
c.companyName,
orderid
FROM clientes c
LEFT JOIN orders o ON o.customerid = c .customerid
ORDER BY orderid
|
Se enumeran todas las filas de la tabla de clientes. En caso de que no haya una fila coincidente en la tabla de pedidos que se encuentra para la fila en la tabla de clientes, la columna orderid en la tabla de pedidos se completa con valores NULL.
Podemos usar el diagrama de Venn para visualizar cómo SQL LEFT OUTER JOIN funciona.
SQL OUTER JOIN: combinación externa derecha
La combinación externa derecha SQL devuelve todas las filas de la tabla derecha y todas las filas coincidentes que se encuentran en la tabla de la izquierda. La sintaxis de la combinación externa derecha de SQL es la siguiente:
1
2
3
4
|
SELECCIONAR columna1, columna2 …
DESDE table_A
RIGHT JOIN table_B ON join_condition
WHERE row_condition
|
La combinación externa derecha de SQL también se conoce como combinación derecha de SQL.
SQL OUTER JOIN – ejemplo de combinación externa derecha
El siguiente ejemplo demuestra la Combinación externa derecha SQL:
1
2
3
4
5
6
|
SELECCIONAR c.customerid,
c.companyName,
orderi d
DE los clientes c
ÓRDENES DE UNIRSE A LA DERECHA o EN o.customerid = c.customerid
ORDER BY orderid
|
La consulta devuelve todas las filas en la tabla de pedidos y todas las filas coincidentes que se encuentran en la tabla de clientes.
El siguiente diagrama de Venn ilustra cómo funciona la combinación externa derecha de SQL:
SQL OUTER JOIN – combinación externa completa
La sintaxis de la combinación externa completa de SQL es la siguiente:
1
2
3
4
|
SELECCIONAR columna1, columna2 …
FROM table_A
FULL OUTER JOIN table_B ON join_condition
WHERE row_condition
|
La combinación externa completa de SQL devuelve:
- all ro ws en la tabla izquierda table_A.
- todas las filas en la tabla derecha table_B.
- y todas las filas coincidentes en ambas tablas.
Alguna base de datos Los sistemas de gestión no admiten la sintaxis de combinación externa completa de SQL, por ejemplo, MySQL. Debido a que la combinación externa completa de SQL devuelve un conjunto de resultados que es un resultado combinado de la combinación izquierda de SQL y la combinación derecha de SQL.Por lo tanto, puede emular fácilmente la combinación externa completa de SQL utilizando la combinación izquierda de SQL y la combinación derecha de SQL con el operador UNION de la siguiente manera:
SQL OUTER JOIN – ejemplo de combinación externa completa
La siguiente consulta demuestra la combinación externa completa de SQL:
1
2
3
4
5
6
|
SELECT c.customerid,
c.companyName,
orderid
FROM clientes c
FULL OUTER JOIN pedidos o ON o.customerid = c.customerid
ORDER BY orderid
|
El siguiente diagrama de Venn ilustra cómo funciona la combinación externa completa de SQL:
En este tutorial, ha aprendido sobre varios SQL OUTER JOIN incluyendo SQL left join, SQL right join y SQL full outside join.
- ¿Fue útil este tutorial?
- SíNo