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:
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
- Oblidar la condició de la unió (
ON
): Sense aquesta condició, la consulta no sabrà com combinar les files de les dues taules. - Confondre les columnes: Assegura't que les columnes utilitzades en la condició de la unió existeixen en ambdues taules i tenen valors compatibles.
- 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
- Utilitzar LIKE per a coincidències de patrons
- Operadors IN i BETWEEN
- Valors NULL i IS NULL
- Agrupar dades amb GROUP BY
- Clàusula HAVING
Mòdul 5: Manipulació de dades
Mòdul 6: Funcions avançades de SQL
Mòdul 7: Subconsultes i consultes niades
- Introducció a les subconsultes
- Subconsultes correlacionades
- EXISTS i NOT EXISTS
- Utilitzar subconsultes en les clàusules SELECT, FROM i WHERE
Mòdul 8: Índexs i optimització del rendiment
- Comprendre els índexs
- Crear i gestionar índexs
- Tècniques d'optimització de consultes
- Analitzar el rendiment de les consultes
Mòdul 9: Transaccions i concurrència
- Introducció a les transaccions
- Propietats ACID
- Instruccions de control de transaccions
- Gestionar la concurrència
Mòdul 10: Temes avançats
Mòdul 11: SQL en la pràctica
- Casos d'ús del món real
- Millors pràctiques
- SQL per a l'anàlisi de dades
- SQL en el desenvolupament web