SQL Outer Join | |
SQL >
Comandos SQL >
Outer Join
Anteriormente, hemos visto una unión izquierda, o interna, donde seleccionamos filas comunes a las tablas que participan en la unión. ¿Qué sucede en los casos donde estamos interesados en la selección de elementos en una tabla sin importar si se encuentran presentes en la segunda tabla? Ahora necesitaremos utilizar el comando SQL OUTER JOIN. La sintaxis para realizar una unión externa en SQL depende de la base de datos. Por ejemplo, en Oracle, colocaremos un "(+)" en la cláusula WHERE del otro lado de la tabla para la que queremos incluir todas las filas. Digamos que tenemos las siguientes dos tablas: Tabla Store_Information
Tabla Geography
y queremos saber la suma de las ventas de todos los negocios. Si realizamos una unión regular, no podríamos obtener lo que deseamos debido a que habríamos omitido “New York" ya que no aparece en la tabla Store_Information. Por lo tanto, necesitamos realizar una unión externa respecto de las dos tablas anteriores: SELECT A1.Store_Name, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2 WHERE A1.Store_Name = A2.Store_Name (+) GROUP BY A1.Store_Name; Note que en este caso, estamos utilizando la sintaxis Oracle para unión externa. Resultado:
Nota: Se devuelve NULL cuando no hay coincidencia en la segunda tabla. En este caso, “New York" no aparece en la tabla Store_Information, por lo tanto su columna "SALES" correspondiente es NULL.
|