SQL desde cero · lección 5 de 6

Unir dos tablas: JOIN y ON

Poner nombre a cada robo juntando dos tablas, y por qué aparece el error de columna ambigua.

La tabla robos no dice quién robó, sólo sospechoso_id: el número que apunta al id de sospechosos. JOIN junta cada robo con su sospechoso, y ON dice cómo emparejarlos: ON s.id = r.sospechoso_id.

Las letras son alias: FROM robos r JOIN sospechosos s te deja escribir r.botin y s.nombre. Hacen falta cuando dos tablas comparten un nombre de columna, como ciudad: sin decir de cuál, DuckDB te responde que es ambigua.

JOIN sólo deja las filas que encuentran pareja. Por eso aquí no aparece el robo sin sospechoso ni la gente sin robos. De esos se ocupa la siguiente lección.

Las tablas

sospechosos

idnombreedadciudadoficio
1Lucía Prado34Bahía Lumenfotógrafa
2Joel Ibarra52Puerto Salcerrajero
3Marta Solís27Bahía Lumenenfermera
4Iker Vela41San Cirotaxista
5Rocío Andrade63Puerto Saljoyera
6Damián Cuevas19San Cirorepartidor
7Elena Ruiz46Bahía Lumencontadora
8Bruno Paz38Puerto Salmecánico

robos

idsospechoso_idciudadbotin
12Puerto Sal1200
22Puerto Sal800
34San Ciro300
45Puerto Sal5000
58Puerto Sal450
68Bahía Lumen950
78San Ciro150
81Bahía Lumen2200
9NULLBahía Lumen700

Puedes escribir aquí mismo: cada ejercicio se ejecuta con DuckDB en tu navegador, sin instalar nada. Con el teclado: Ctrl + Enter.

1. Ponle nombre a cada robo

El nombre del sospechoso y el botín de cada robo.

2. La columna ambigua

El nombre y el botín de los robos cometidos en Puerto Sal. Ejecútala tal como está para ver el error y luego corrígela.

3. Botín por persona

El nombre y el botín total de cada sospechoso con robos.

4. El mayor botín

Sólo el nombre de quien suma más botín, y su total.