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_name Sales 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_name store_name
East Boston
East New York
West Los Angeles
West San 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 “Nueva 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_name SALES
Boston 700 €
New York
Los Angeles 1800 €
San Diego 250 €

Nota: Se devuelve NULL cuando no hay coincidencia en la segunda tabla. En este caso, “Nueva York" no aparece en la tabla Store_Information, por lo tanto su columna "SALES" correspondiente es NULL.

SQL Concatenar >>




SQL SELECT
SQL DISTINCT
SQL WHERE
SQL AND OR
SQL IN
SQL BETWEEN
SQL LIKE
SQL ORDER BY
SQL Fonciones
SQL COUNT
SQL GROUP BY
SQL HAVING
SQL ALIAS
SQL Join
SQL Outer Join
SQL Concatenar
SQL SUBSTRING
SQL TRIM






Mapa del Sitio