Puedes ejecutar cualquier JOIN en nuestra consola interactiva: Abrir consola SQL →
INNER JOIN en SQL: combina datos con coincidencias exactas
INNER JOIN devuelve solo las filas que tienen coincidencia en ambas tablas. Es el JOIN más usado en SQL y la base de la mayoría de reportes y consultas relacionales.
Tabla de contenidos
1. ¿Qué es INNER JOIN?
INNER JOIN devuelve solo las filas que coinciden en ambas tablas según la condición ON. Si no hay coincidencia, la fila no aparece en el resultado.
SELECT u.nombre, p.producto
FROM usuarios u
INNER JOIN pedidos p ON u.id = p.usuario_id;
2. Sintaxis de INNER JOIN
SELECT columnas
FROM tabla1
INNER JOIN tabla2
ON tabla1.columna = tabla2.columna;
3. Ejemplo básico
SELECT u.nombre, p.producto
FROM usuarios u
INNER JOIN pedidos p
ON u.id = p.usuario_id;
4. INNER JOIN con múltiples tablas
SELECT u.nombre, p.producto, c.ciudad
FROM usuarios u
INNER JOIN pedidos p ON u.id = p.usuario_id
INNER JOIN ciudades c ON u.ciudad_id = c.id;
5. INNER JOIN con condiciones adicionales
SELECT u.nombre, p.producto
FROM usuarios u
INNER JOIN pedidos p
ON u.id = p.usuario_id
WHERE p.estado = 'Enviado';
6. Ejemplos prácticos
SELECT e.nombre, d.nombre AS departamento
FROM empleados e
INNER JOIN departamentos d ON e.depto_id = d.id;
SELECT p.producto, c.nombre AS categoria
FROM productos p
INNER JOIN categorias c ON p.categoria_id = c.id;
SELECT u.nombre, p.producto, p.estado
FROM usuarios u
INNER JOIN pedidos p ON u.id = p.usuario_id
WHERE p.estado = 'Pendiente';
7. Ejercicios para practicar
- Haz un INNER JOIN entre usuarios y pedidos.
- Haz un INNER JOIN entre productos y categorías.
- Haz un INNER JOIN múltiple entre usuarios, pedidos y ciudades.
- Haz un INNER JOIN con condición adicional.
- Explica para qué sirve INNER JOIN.
SELECT u.nombre, p.producto
FROM usuarios u
INNER JOIN pedidos p ON u.id = p.usuario_id;
SELECT p.nombre, c.nombre
FROM productos p
INNER JOIN categorias c ON p.categoria_id = c.id;
SELECT u.nombre, p.producto, c.ciudad
FROM usuarios u
INNER JOIN pedidos p ON u.id = p.usuario_id
INNER JOIN ciudades c ON u.ciudad_id = c.id;
SELECT u.nombre, p.producto
FROM usuarios u
INNER JOIN pedidos p
ON u.id = p.usuario_id
WHERE p.estado = 'Pendiente';
-- INNER JOIN sirve para combinar datos con coincidencias exactas.
8. Mini‑proyecto: Reporte de pedidos por usuario
SELECT u.nombre, p.producto, p.estado
FROM usuarios u
INNER JOIN pedidos p ON u.id = p.usuario_id
WHERE p.estado = 'Enviado';
9. Errores comunes
- No usar alias y crear consultas difíciles de leer.
- Confundir INNER JOIN con LEFT JOIN.
- Unir columnas incorrectas.
- Olvidar condiciones adicionales cuando son necesarias.
10. Preguntas frecuentes
¿INNER JOIN es el JOIN más usado?
Sí, es el más común en SQL.
¿Puedo unir más de dos tablas?
Sí, puedes unir tantas como necesites.