SQL Knowledge Center · About ·
Easy Interactive Online SQL Training for Beginners

Inner joins - Tutorial SQL Interactivo

Lección 21 de 31

Inner joins

Tutorial SQL Interactivo

Diferentes partes de información pueden almacenarse en diferentes tablas, y para juntarlas, usamos INNER JOIN ... ON. Unir tablas es fundamental en la funcionalidad SQL, pero puede volverse muy complicado. Comenzaremos con un ejemplo simple, y empezaremos con un INNER JOIN.

Como puedes ver abajo, hay 3 tablas:
character: Cada personaje es una fila y está representado por un identificador único (id), ej. 1 es Doogie Howser
character_tv_show: Para cada personaje, ¿en qué programa está?
character_actor: Para cada personaje, ¿quién es el actor?

Ve que en character_tv_show, en lugar de almacenar tanto el personaje como los nombres del programa de TV (ej. Willow Rosenberg y Buffy the Vampire Slayer), almacena el character_id como sustituto del nombre del personaje. Este character_id se refiere a la fila id correspondiente de la tabla character.

Esto se hace para que los datos no se dupliquen. Por ejemplo, si el nombre de un personaje fuera a cambiar, solo tendrías que cambiar el nombre del personaje en una fila.

Esto nos permite “unir” las tablas juntas “en” esa columna de referencia/común.

Para obtener el nombre de cada personaje con su nombre de programa de TV, podemos escribir
SELECT character.name, character_tv_show.tv_show_name
FROM character
INNER JOIN character_tv_show
ON character.id = character_tv_show.character_id;

Esto une cada fila en character con la fila correspondiente en character_tv_show, o viceversa.

Nota:
- Usamos la sintaxis table_name.column_name. Si solo usáramos column_name, SQL podría asumir incorrectamente de qué tabla viene.
- La consulta de ejemplo arriba está escrita en múltiples líneas para legibilidad, pero eso no afecta la consulta.

¿Puedes usar un inner join para emparejar cada nombre de personaje con el actor que lo interpreta? Selecciona las columnas: character.name, character_actor.actor_name

SQL:

Query Result:

Available Tables: