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
Store_NameSalesTxn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999

Tabla Geography
Region_NameStore_Name
EastBoston
EastNew York
WestLos Angeles
WestSan Diego

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:

Store_NameSALES
Boston700
New York
Los Angeles1800
San Diego250

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.

SQL Concatenar >>



Copyright © 2017   1keydata.com   Todos los derechos reservados.