Mecánica de INNER JOIN
Comprenda INNER JOIN como un producto cartesiano filtrado, escriba condiciones de unión e interprete la salida de EXPLAIN para las uniones.
Mecánica de INNER JOIN es una lección gratuita de SQL Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de SQL Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de SQL Academy incluye 4 lecciones en total.
La combinación INNER JOIN
INNER JOIN solo devuelve las filas que tienen un par coincidente en AMBAS tablas, según la condición ON.
INNER JOIN básico
Obtenga cada pedido junto con su usuario:
SELECT o.id, o.total, u.email
FROM orders o
INNER JOIN users u ON u.id = o.user_id;
-- INNER is the default — you can also write:
SELECT o.id, o.total, u.email
FROM orders o
JOIN users u ON u.id = o.user_id;Varias condiciones en ON
La cláusula ON es una expresión booleana normal:
SELECT *
FROM events e
JOIN sessions s
ON s.user_id = e.user_id
AND e.created_at BETWEEN s.start_at AND s.end_at;Alias
Los alias acortan las consultas y evitan referencias ambiguas a columnas:
SELECT o.id, u.email
FROM orders AS o -- AS is optional
JOIN users AS u ON u.id = o.user_id;Combinar tres tablas o más
Encadene las combinaciones repitiendo la cláusula JOIN:
SELECT o.id, u.email, p.name AS product
FROM orders o
JOIN users u ON u.id = o.user_id
JOIN products p ON p.id = o.product_id;USING (column)
Cuando la columna de combinación tiene el mismo nombre en ambas tablas, puede escribir USING; la columna no se duplica en el resultado:
SELECT o.id, total, email
FROM orders
JOIN users USING (user_id); -- requires both tables to have user_idNATURAL JOIN
Combina usando todas las columnas que tienen el mismo nombre. Tenga cuidado: es frágil cuando se añaden columnas.
-- Avoid in production code:
SELECT * FROM orders NATURAL JOIN users;Condiciones de JOIN frente a WHERE
En un INNER JOIN, una condición en ON es lógicamente equivalente a una condición en WHERE. Convención: las condiciones que definen la relación del JOIN van en ON; los filtros de filas van en WHERE.
SELECT * FROM orders o
JOIN users u ON u.id = o.user_id -- join condition
WHERE u.country = 'US'; -- row filterMultiplicación de resultados
Si una fila de A coincide con tres filas de B, el resultado contiene tres filas. Es normal, pero puede sorprenderle si lo olvida. ¿Está realizando una agregación? Use COUNT(*) con cuidado.
Introducción a las autocombinaciones
Puede combinar una tabla consigo misma asignando un alias diferente a cada instancia:
SELECT e.full_name AS employee, m.full_name AS manager
FROM employees e
JOIN employees m ON m.id = e.manager_id;Rendimiento de INNER JOIN
Las combinaciones internas son rápidas cuando:
- La columna de combinación está indexada (especialmente en el lado de la FK)
- Una tabla es pequeña (combinación por hash) o ambas están ordenadas (combinación por ordenación)
- Filtra pronto para mantener bajo el número de filas intermedias
Resumen
INNER JOIN conserva únicamente los pares coincidentes.
JOINequivale aINNER JOINde forma predeterminadaONexpresa la condición de combinación- Los alias mantienen las consultas breves
- Las columnas de combinación deben estar indexadas
Comprobación rápida
¿Qué devuelve orders INNER JOIN users ON users.id = orders.user_id cuando un pedido no tiene ningún usuario coincidente (es huérfano)?
Preguntas frecuentes
¿La lección «Mecánica de INNER JOIN» es gratis?
Sí — el texto completo de «Mecánica de INNER JOIN» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de SQL Academy, actualiza a CoddyKit PRO. El curso de SQL Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Mecánica de INNER JOIN»?
Comprenda INNER JOIN como un producto cartesiano filtrado, escriba condiciones de unión e interprete la salida de EXPLAIN para las uniones. Practicas SQL Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar SQL Academy?
No se requiere experiencia previa. SQL Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Mecánica de INNER JOIN»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de SQL Academy?
Sí. Cada lección de SQL Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Por qué existen los JOIN (repaso del modelo relacional)
- Mecánica de INNER JOIN
- LEFT/RIGHT JOIN y uniones OUTER
- Auto-uniones y alias