JOIN in SQL: combining data from several tables
INNER JOIN and LEFT JOIN explained with a real query runner on two related tables.
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;
Query runner
usuarios ↔ pedidos interactivo
Resultado
INNER JOIN vs 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.The sample tables
Check what you've learned
¿Para qué sirve
ON en un JOIN?Un usuario sin pedidos, en un
LEFT JOIN usuarios→pedidos…pedidos.usuario_id es…