JOIN en SQL: combinar datos de varias tablas
INNER JOIN y LEFT JOIN explicados con un ejecutor de consultas real sobre dos tablas relacionadas.
Los datos se reparten en varias tablas relacionadas por una clave foránea. En nuestro
ejemplo, pedidos.usuario_id apunta a usuarios.id. Un JOIN junta
las filas de ambas tablas según esa relación.
SQL
SELECT usuarios.nombre, pedidos.producto, pedidos.importe
FROM pedidos
JOIN usuarios ON pedidos.usuario_id = usuarios.id;
Ejecutor de consultas
usuarios ↔ pedidos interactivo
Resultado
INNER JOIN frente a LEFT JOIN
| INNER JOIN (o solo JOIN) | LEFT JOIN | |
|---|---|---|
| Qué devuelve | Solo las filas que coinciden en ambas tablas | Todas las de la tabla izquierda; las de la derecha, si hay; si no, NULL |
| Ejemplo | Usuarios que han hecho algún pedido | Todos los usuarios, hayan pedido o no |
Pulsa el preset «todos los usuarios (LEFT)»: verás que Marco
aparece con
producto = NULL porque no tiene pedidos.Las tablas de ejemplo
Comprueba lo aprendido
¿Para qué sirve
ON en un JOIN?Un usuario sin pedidos, en un
LEFT JOIN usuarios→pedidos…pedidos.usuario_id es…