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
Tabla Geography
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:
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.
|