TOP

Lección SQL 10. Unir tablas (INNER JOIN)

La característica más poderosa del lenguaje SQL es la capacidad de combinar diferentes tablas en la RAM del DBMS durante la ejecución de consultas. Las uniones se utilizan con mucha frecuencia para el análisis de datos. Como regla general, los datos están en diferentes tablas, lo que permite almacenarlos de manera más eficiente (ya que la información no se duplica), simplifica el procesamiento de datos y permite escalar la base de datos (es posible agregar nuevas tablas con información adicional). .

Las tablas de bases de datos utilizadas en DBMS MS Access son tablas relacionales, es decir, todas las tablas pueden vincularse entre sí mediante campos comunes.


1. Creando una combinación de tablas (JOINS)

Combinar tablas es un procedimiento muy sencillo. Es necesario especificar todas las tablas que se incluirán en la combinación y "explicar" al DBMS cómo se relacionarán entre sí. La conexión se realiza utilizando la palabra WHERE, por ejemplo:

Run SQLSELECT DISTINCT Seller_name, Product 
FROM Sellers, Sumproduct 
WHERE Sellers.City = Sumproduct.City

Al combinar las dos tablas, pudimos ver qué productos vende cada vendedor. Echemos un vistazo más de cerca al código de solicitud, ya que es ligeramente diferente de una solicitud normal. La sentencia SELECT comienza especificando las columnas que queremos mostrar, pero estos campos están en tablas diferentes, la cláusula FROM contiene dos tablas que queremos unir en la sentencia SELECT, las tablas se unen usando la palabra WHERE, que especifica las columnas unir. Debes especificar el nombre completo del campo (Table.Field), porque el campo City está en ambas tablas.

2. Combinación interna (INNER JOIN)

En el ejemplo anterior, usamos la palabra WHERE para combinar tablas, lo que realiza una verificación basada en la equivalencia de dos tablas. Una combinación de este tipo también se denomina "combinación interna". También existe otra forma de combinar tablas que indica claramente el tipo de combinación. Considere el siguiente ejemplo:

Run SQLSELECT DISTINCT Seller_name, Product 
FROM Sellers 
INNER JOIN Sumproduct 
ON Sellers.City = Sumproduct.City

En esta consulta, en lugar de WHERE, utilizamos la construcción INNER JOIN... ON..., que dio un resultado similar. Aunque la combinación con la cláusula WHERE es más corta, es mejor usar INNER JOIN porque es más flexible, como se explicará con más detalle en las siguientes secciones.