SQL Join




SQL > Comandos SQL > Join

Ahora miremos las uniones. Para realizar uniones en SQL se requieren mucho de los elementos que ya hemos presentado. 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 las ventas por región. Vemos que la tabla Geography incluye información sobre regiones y negocios, y la tabla Store_Information contiene información de ventas para cada negocio. Para obtener la información de ventas por región, debemos combinar la información de las dos tablas. Al examinar las dos tablas, encontramos que están enlazadas a través del campo común “nombre_negocio” Primero presentaremos la instrucción SQL y explicaremos el uso de cada segmento después:

SELECT A1.Region_Name REGION, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.Store_Name = A2.Store_Name
GROUP BY A1.Region_Name;

Resultado:

REGION SALES
East 700
West 2050

Las primeras dos líneas le indican a SQL que seleccione dos campos, el primero es el campo "Region_Name" de la tabla Geography (denominado REGION), y el segundo es la suma del campo "Sales" de la tabla Store_Information (denominado SALES). Note como se utilizan los alias de tabla aquí: Geography se denomina A1, e Store_Information se denomina A2. Sin los alias, la primera línea sería

SELECT Geography.region_name REGION, SUM(Store_Information.Sales) SALES

que es mucho más problemática. En esencia, los alias de tabla facilitan el entendimiento de la totalidad de la instrucción SQL, especialmente cuando se incluyen tablas múltiples.

Luego, pongamos nuestra atención en la línea 2, la instrucción WHERE. Aquí es donde se especifica la condición de la unión. En este caso, queremos asegurarnos que el contenido en "Store_Name" en la tabla Geography concuerde con la tabla Store_Information, y la forma de hacerlo es igualarlos. Esta instrucción WHERE es esencial para asegurarse de que obtenga el resultado correcto. Sin la correcta instrucción WHERE se producirá una Unión Cartesiana. Las uniones cartesianas darán por resultado que de la consulta se arroje toda combinación posible de las dos tablas (o cualquiera que sea el número de tablas en la instrucción FROM). En este caso, una unión cartesiana resultaría en un total de 4x4 = Se presenta un resultado de16 filas.

SQL Outer Join >>



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