Introducció

L'operació INNER JOIN és una de les més utilitzades en SQL per combinar files de dues o més taules basant-se en una condició comuna entre elles. Aquesta operació retorna només les files que tenen coincidències en ambdues taules.

Sintaxi

La sintaxi bàsica per a un INNER JOIN és la següent:

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

Explicació de la sintaxi

  • SELECT column_name(s): Especifica les columnes que vols recuperar.
  • FROM table1: Especifica la primera taula.
  • INNER JOIN table2: Especifica la segona taula i indica que es farà un INNER JOIN.
  • ON table1.column_name = table2.column_name: Defineix la condició de la unió, és a dir, les columnes que han de coincidir entre les dues taules.

Exemple pràctic

Suposem que tenim dues taules: Clients i Comandes.

Taula Clients

client_id nom ciutat
1 Anna Barcelona
2 Joan Madrid
3 Maria València

Taula Comandes

comanda_id client_id producte
101 1 Ordinador
102 2 Telèfon
103 1 Teclat
104 3 Monitor

Consulta amb INNER JOIN

Volem obtenir una llista de tots els clients i els seus productes comprats. Utilitzarem un INNER JOIN per combinar les taules Clients i Comandes basant-nos en la columna client_id.

SELECT Clients.nom, Comandes.producte
FROM Clients
INNER JOIN Comandes
ON Clients.client_id = Comandes.client_id;

Resultat

nom producte
Anna Ordinador
Anna Teclat
Joan Telèfon
Maria Monitor

Exercicis pràctics

Exercici 1

Descripció: Tenim dues taules, Estudiants i Cursos, i volem obtenir una llista dels estudiants amb els cursos que estan cursant.

Taula Estudiants

estudiant_id nom
1 Laura
2 Marc
3 Carla

Taula Cursos

curs_id estudiant_id curs
201 1 Matemàtiques
202 2 Física
203 1 Química
204 3 Biologia

Consulta

Escriu una consulta SQL per obtenir els noms dels estudiants i els cursos que estan cursant.

SELECT Estudiants.nom, Cursos.curs
FROM Estudiants
INNER JOIN Cursos
ON Estudiants.estudiant_id = Cursos.estudiant_id;

Exercici 2

Descripció: Tenim dues taules, Empleats i Departaments, i volem obtenir una llista dels empleats amb els seus respectius departaments.

Taula Empleats

empleat_id nom
1 Jordi
2 Marta
3 Pau

Taula Departaments

departament_id empleat_id departament
301 1 Vendes
302 2 Màrqueting
303 3 IT

Consulta

Escriu una consulta SQL per obtenir els noms dels empleats i els seus departaments.

SELECT Empleats.nom, Departaments.departament
FROM Empleats
INNER JOIN Departaments
ON Empleats.empleat_id = Departaments.empleat_id;

Errors comuns

  1. Oblidar la condició de la unió (ON): Sense aquesta condició, la consulta no sabrà com combinar les files de les dues taules.
  2. Confondre les columnes: Assegura't que les columnes utilitzades en la condició de la unió existeixen en ambdues taules i tenen valors compatibles.
  3. No especificar les taules correctament: Assegura't que les taules esmentades en la consulta són les que realment vols unir.

Consells addicionals

  • Utilitza àlies de taula: Per fer les consultes més llegibles, pots utilitzar àlies per a les taules. Per exemple:

    SELECT c.nom, o.producte
    FROM Clients c
    INNER JOIN Comandes o
    ON c.client_id = o.client_id;
    
  • Verifica els resultats: Després de fer una unió, revisa els resultats per assegurar-te que la unió s'ha fet correctament i que no hi ha files inesperades.

Conclusió

L'operació INNER JOIN és essencial per treballar amb múltiples taules en SQL. Permet combinar dades de diferents taules basant-se en una condició comuna, facilitant l'obtenció d'informació rellevant i coherent. Practicar amb diferents exemples i exercicis t'ajudarà a dominar aquesta operació i a utilitzar-la de manera efectiva en les teves consultes SQL.

Curs de SQL

Mòdul 1: Introducció a SQL

Mòdul 2: Consultes bàsiques de SQL

Mòdul 3: Treballar amb múltiples taules

Mòdul 4: Filtratge avançat de dades

Mòdul 5: Manipulació de dades

Mòdul 6: Funcions avançades de SQL

Mòdul 7: Subconsultes i consultes niades

Mòdul 8: Índexs i optimització del rendiment

Mòdul 9: Transaccions i concurrència

Mòdul 10: Temes avançats

Mòdul 11: SQL en la pràctica

Mòdul 12: Projecte final

© Copyright 2024. Tots els drets reservats