Introducción
En SQL, la operación INNER JOIN se utiliza para combinar filas de dos o más tablas basándose en una condición común entre ellas. Esta operación devuelve solo las filas que tienen coincidencias en ambas tablas.
Conceptos Clave
- Tablas: Conjuntos de datos organizados en filas y columnas.
- Llave primaria: Columna o conjunto de columnas que identifican de manera única cada fila en una tabla.
- Llave foránea: Columna o conjunto de columnas en una tabla que se refiere a la llave primaria en otra tabla.
Sintaxis de INNER JOIN
La sintaxis básica de un INNER JOIN es la siguiente:
columnas: Las columnas que deseas seleccionar.tabla1ytabla2: Las tablas que deseas unir.columna_comun: La columna común en ambas tablas que se utiliza para la unión.
Ejemplo Práctico
Supongamos que tenemos dos tablas: Clientes y Pedidos.
Tabla Clientes
| ClienteID | Nombre | Ciudad |
|---|---|---|
| 1 | Juan | Madrid |
| 2 | Ana | Barcelona |
| 3 | Pedro | Valencia |
Tabla Pedidos
| PedidoID | ClienteID | Producto |
|---|---|---|
| 101 | 1 | Laptop |
| 102 | 2 | Teléfono |
| 103 | 1 | Tablet |
| 104 | 3 | Monitor |
Queremos obtener una lista de todos los pedidos junto con el nombre del cliente que realizó cada pedido. Utilizamos un INNER JOIN para combinar las tablas Clientes y Pedidos basándonos en la columna ClienteID.
SELECT Clientes.Nombre, Pedidos.Producto FROM Clientes INNER JOIN Pedidos ON Clientes.ClienteID = Pedidos.ClienteID;
Resultado
| Nombre | Producto |
|---|---|
| Juan | Laptop |
| Ana | Teléfono |
| Juan | Tablet |
| Pedro | Monitor |
Ejercicio Práctico
Ejercicio 1
Dadas las siguientes tablas:
Tabla Empleados
| EmpleadoID | Nombre | DepartamentoID |
|---|---|---|
| 1 | Carlos | 10 |
| 2 | María | 20 |
| 3 | Luis | 10 |
Tabla Departamentos
| DepartamentoID | Departamento |
|---|---|
| 10 | Ventas |
| 20 | Marketing |
Escribe una consulta SQL que devuelva el nombre del empleado y el nombre del departamento al que pertenece.
Solución
SELECT Empleados.Nombre, Departamentos.Departamento FROM Empleados INNER JOIN Departamentos ON Empleados.DepartamentoID = Departamentos.DepartamentoID;
Resultado Esperado
| Nombre | Departamento |
|---|---|
| Carlos | Ventas |
| María | Marketing |
| Luis | Ventas |
Errores Comunes
- No especificar la condición de unión: Olvidar la cláusula
ONresultará en un error. - Confundir columnas: Asegúrate de que las columnas en la cláusula
ONson las correctas y existen en ambas tablas. - Nombres de columnas ambiguos: Si las tablas tienen columnas con el mismo nombre, usa el prefijo de la tabla (
tabla.columna) para evitar ambigüedades.
Conclusión
El INNER JOIN es una herramienta poderosa para combinar datos de múltiples tablas en SQL. Al dominar esta operación, puedes realizar consultas más complejas y obtener información más detallada de tus bases de datos. En el próximo tema, exploraremos otras operaciones de unión como LEFT JOIN y RIGHT JOIN para entender cómo manejar diferentes escenarios de combinación de datos.
Curso de SQL
Módulo 1: Introducción a SQL
Módulo 2: Consultas básicas de SQL
- Instrucción SELECT
- Filtrando datos con WHERE
- Ordenando datos con ORDER BY
- Limitando resultados con LIMIT
Módulo 3: Trabajando con múltiples tablas
Módulo 4: Filtrado avanzado de datos
- Usando LIKE para coincidencia de patrones
- Operadores IN y BETWEEN
- Valores NULL y IS NULL
- Agregando datos con GROUP BY
- Cláusula HAVING
Módulo 5: Manipulación de datos
Módulo 6: Funciones avanzadas de SQL
Módulo 7: Subconsultas y consultas anidadas
- Introducción a subconsultas
- Subconsultas correlacionadas
- EXISTS y NOT EXISTS
- Usando subconsultas en cláusulas SELECT, FROM y WHERE
Módulo 8: Índices y optimización de rendimiento
- Entendiendo los índices
- Creación y gestión de índices
- Técnicas de optimización de consultas
- Análisis del rendimiento de consultas
Módulo 9: Transacciones y concurrencia
- Introducción a las transacciones
- Propiedades ACID
- Instrucciones de control de transacciones
- Manejo de concurrencia
