← Volver a lecciones

5. JOIN entre tablas

Cuando los datos están repartidos en varias tablas relacionadas por una clave (por ejemplo clientes y pedidos, donde cada pedido tiene un cliente_id), se usa INNER JOIN para combinarlas:

SELECT clientes.nombre, pedidos.monto
FROM pedidos
INNER JOIN clientes ON pedidos.cliente_id = clientes.id;

El INNER JOIN (se puede escribir sólo JOIN) trae únicamente las filas que tienen coincidencia en ambas tablas. Se le puede agregar WHERE igual que a cualquier SELECT:

SELECT clientes.nombre, pedidos.monto
FROM pedidos
INNER JOIN clientes ON pedidos.cliente_id = clientes.id
WHERE pedidos.monto > 500000;

Cuando dos tablas tienen columnas con el mismo nombre (como id), hay que anteponer la tabla (clientes.id) para que SQL Server sepa a cuál te referís. También se pueden usar alias para escribir menos:

SELECT c.nombre, p.monto
FROM pedidos AS p
INNER JOIN clientes AS c ON p.cliente_id = c.id;

Ejercicios de esta lección

leccion5-ej1 — Clientes con sus pedidos
Practicar
leccion5-ej2 — Las mejores notas con el nombre del alumno
Practicar