en SQL Server, a veces es necesario recuperar, además de las filas coincidentes, las filas no coincidentes de una o ambas tablas. Tal operación se llama unión externa.
Los ejemplos 1 y 2 muestran la diferencia entre una unión natural y la Unión exterior correspondiente. (Todos los ejemplos de esta sección usan la tabla employee_enh.,)
Ejemplo 1
obtener detalles completos de todos los empleados, incluida la ubicación de su departamento, que viven y trabajan en la misma ciudad:
el resultado es:
Ejemplo 1 utiliza una combinación natural para mostrar conjunto de resultados de filas. Si desea conocer todos los demás lugares de vida existentes de los empleados, debe usar la Unión Exterior (Izquierda). Esto se denomina unión externa izquierda porque se devuelven todas las filas de la tabla en el lado izquierdo del operador, tengan o no una fila coincidente en la tabla de la derecha., En otras palabras, si no hay filas coincidentes en la tabla del lado derecho, la unión externa devolverá una fila de la tabla del lado izquierdo, con NULL en cada columna de la otra tabla (ver Ejemplo 2). El motor de base de datos utiliza el operador unión externa izquierda para especificar la unión externa izquierda.
una unión externa derecha es similar, pero devuelve todas las filas de la tabla a la derecha del símbolo. El motor de base de datos utiliza el operador RIGHT OUTER JOIN para especificar la unión externa derecha.,
Ejemplo 2
Obtenga detalles completos de todos los empleados, incluida la ubicación de su departamento, para todas las ciudades que son solo el lugar de vida o ambos el lugar de vida y trabajo de los empleados:
el resultado es:
puede ver, cuando no hay ninguna fila coincidente en la tabla en el lado derecho (departamento, en este caso), la unión externa izquierda todavía devuelve las filas de la tabla en el lado izquierdo (employee_enh), y las columnas de la otra tabla se rellenan con valores NULL., El ejemplo 3 muestra el uso de la operación de unión externa derecha.
Ejemplo 3
obtener todos los detalles de todos los departamentos, así como todos los lugares de vida de sus empleados, para todas las ciudades que son la ubicación de un departamento o el lugar de vida y trabajo de un empleado:
el resultado es:
además de las uniones exteriores izquierda y derecha, también está la Unión exterior completa, que se define como la Unión de las uniones exteriores izquierda y derecha. En otras palabras, todas las filas de ambas tablas se representan en el conjunto de resultados., Si no hay una fila correspondiente en una de las tablas, sus columnas se devuelven con valores nulos. Esta operación se especifica utilizando el operador FULL OUTER JOIN.
cada operación de unión externa se puede simular utilizando el operador de unión más la función no existe. El ejemplo 4 es equivalente al ejemplo con la unión externa izquierda (Ejemplo 2).,
Ejemplo 4
Obtenga detalles completos de todos los empleados, incluida la ubicación de su departamento, para todas las ciudades que son solo el lugar de residencia o el lugar de residencia y trabajo de los empleados:
la primera declaración SELECT en la Unión especifica la unión natural de las tablas employee_enh y department con las columnas de unión domicile y location. Esta declaración SELECT recupera todas las ciudades que son al mismo tiempo los lugares de vida y los lugares de trabajo de cada empleado., La segunda instrucción SELECT de la Unión recupera, además, todas las filas de la tabla employee_enh que no coinciden con la condición de la combinación natural.