SQL FULL JOIN: Unión Completa En SQL server

En SQL server, el comando SQL FULL JOIN (o FULL OUTER JOIN) se utiliza para unir entre 2 tablas. El uso de este comando le permite combinar los resultados de las 2 tablas, asociarlas entre sí con una condición y rellenarlas con valores NULL si no se cumple la condición.

sql full join

La combinación externa completa (también conocida como SQL Full Join) primero agrega todas las filas que coinciden con la condición indicada en la consulta y luego agrega las filas restantes no coincidentes de ambas tablas. Necesitamos dos o más tablas para la unión.

Para cada fila de la tabla Tabla1, la combinación externa completa la compara con cada fila de la tabla Tabla2.

Si las filas de ambas tablas cumplen con join_condición, la combinación externa completa incluye columnas de ambas filas en el conjunto de resultados. Decimos que la fila en la tabla Tabla1 coincide con la fila en la tabla Tabla2 en este caso.

Si una fila de la tabla Tabla1 no tiene ninguna fila coincidente de la tabla Tabla2, la combinación externa completa incluirá columnas de la tabla Tabla1 con valores nulos para todas las columnas de la tabla Tabla2.

De manera similar, si una fila en la tabla Tabla2 no tiene una fila que tanga una valor igual en la tabla Tabla1, la unión externa completa incluirá columnas de la tabla Tabla2 con los valores nulos para las columnas de la tabla Tabla1.

Tenga en cuenta que la palabra clave OUTER es opcional, por lo que, FULL OUTER JOIN FULL JOIN son lo mismo.

Sintaxis SQL FULL JOIN

Para devolver los registros table1 y table2, debe utilizar una consulta SQL FULL JOIN con sintaxis como la siguiente:

SELECT *
FROM nombre_table1
FULL JOIN nombre_table2 ON nombre_table1.id = nombre_table2.fk_id

Esta consulta también se puede diseñar de la siguiente manera:

SELECT *
FROM nombre_table1
FULL OUTER JOIN nombre_table2 ON nombre_table1.id = nombre_table2.fk_id

La condición presentada aquí es vincular las tablas en un identificador, pero la condición se puede establecer en otros campos.

Ejemplo SQL FULL JOIN

Por ejemplo, considere una base de datos que contiene una tabla de usuario, así como una tabla de pedidos que contiene todas las ventas.

Tabla de usuarios:

id_usuarionombreapellidocorreo electrónicociudadactivo
1QueridoMarechalmarechal@example.comParís1
2EsméeLuzlefort@example.comLyon0
3MarinaPaulprevost@example.comLille1
4LucRollandlucrolland@example.comMarsella1

 

Comando Tabla pedido:

id_pedidofechanum_factprec_total
12013-01-23A00103203.14
12013-02-14A00104124.00
22013-02-17A00105149.45
32013-02-21A00106235.35
52013-03-02A0010747.58

Es posible utilizar en SQL FULL JOIN para enumerar todos los usuarios que han realizado o no una venta, y para enumerar todas las ventas que están asociadas o no con un usuario. La consulta SQL es la siguiente:

SELECT id, nombre, apellido, id_pedido, fecha, num_fact
FROM pedido
FULL JOIN pedido ON usuario.id = pedido.id_usuario

Resultado:

id_usuarionombreapellidoid_pedidofechanum_facture
1QueridoMarechal12013-01-23A00103
1QueridoMarechal12013-02-14A00104
2EsméeLuz22013-02-17A00105
3MarinaPaul32013-02-21A00106
4LucRollandNULONULONULO
NULONULONULO52013-03-02A00107

Este resultado muestra el usuario número 4 que no ha realizado ninguna compra. El resultado también devuelve la factura A00107 que está asociada a un usuario que no existe (o ya no existe). En los casos en que no hay coincidencia con la otra tabla, los valores de las columnas son NULL.

Conclusión

Un FULL JOIN en SQL (también conocido como FULL OUTER JOIN) combina los resultados de un LEFT JOIN y un RIGHT JOIN, retornando todas las filas de ambas tablas y emparejando las filas correspondientes entre ellas. Algunos puntos importantes sobre el uso de FULL JOIN en SQL son:

  • Resultados con valores nulos: Como se mencionó anteriormente, si una tabla no tiene una fila coincidente en la otra tabla, las columnas correspondientes en el resultado se llenarán con valores nulos. Es importante tener en cuenta esto al trabajar con los resultados de la consulta.
  • Potencial de tablas grandes: SQL FULL JOIN se puede utilizar para unir grandes tablas, pero debe tenerse en cuenta que esto puede ser ineficiente en términos de rendimiento. Es importante optimizar la consulta y asegurarse de que se estén utilizando índices apropiados para mejorar el rendimiento de la consulta.
  • Combinación con otras cláusulas: con SQL FULL JOIN se puede combinar con otras cláusulas, como WHERE y GROUP BY, para filtrar y agrupar los resultados según sea necesario.
  • Espero que esto te haya dado una idea de los puntos importantes a tener en cuenta al utilizar FULL JOIN en SQL.

Deja un comentario