Introducció

En aquest tema, aprendrem sobre l'operació LEFT JOIN en SQL, que és una de les tècniques més utilitzades per combinar dades de dues taules. El LEFT JOIN retorna totes les files de la taula esquerra (la primera taula) i les files coincidents de la taula dreta (la segona taula). Si no hi ha cap coincidència, les files de la taula esquerra encara es mostren, però amb valors NULL per les columnes de la taula dreta.

Sintaxi

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

SELECT column1, column2, ...
FROM table1
LEFT JOIN table2
ON table1.common_column = table2.common_column;

Explicació de la sintaxi

  • SELECT column1, column2, ...: Especifica les columnes que vols seleccionar.
  • FROM table1: Especifica la taula esquerra (primera taula).
  • LEFT JOIN table2: Especifica la taula dreta (segona taula) que es vol unir amb la taula esquerra.
  • ON table1.common_column = table2.common_column: Defineix la condició de la unió, és a dir, les columnes comunes que s'utilitzen per unir les dues taules.

Exemple pràctic

Suposem que tenim dues taules: clients i comandes.

Taula clients

client_id nom
1 Anna
2 Bernat
3 Carla

Taula comandes

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

Volem obtenir una llista de tots els clients i les seves comandes, si en tenen. Utilitzarem un LEFT JOIN per aconseguir-ho:

SELECT clients.client_id, clients.nom, comandes.producte
FROM clients
LEFT JOIN comandes
ON clients.client_id = comandes.client_id;

Resultat

client_id nom producte
1 Anna Ordinador
2 Bernat Telèfon
2 Bernat Teclat
3 Carla NULL

Explicació del resultat

  • La fila amb client_id 1 (Anna) té una comanda d'un ordinador.
  • La fila amb client_id 2 (Bernat) té dues comandes: un telèfon i un teclat.
  • La fila amb client_id 3 (Carla) no té cap comanda, per tant, el valor de la columna producte és NULL.

Exercicis pràctics

Exercici 1

Tenim les següents taules:

Taula empleats

empleat_id nom
1 Jordi
2 Marta
3 Pau

Taula projectes

projecte_id empleat_id projecte
201 1 Projecte A
202 3 Projecte B

Escriu una consulta SQL per obtenir una llista de tots els empleats i els seus projectes, si en tenen.

Solució

SELECT empleats.empleat_id, empleats.nom, projectes.projecte
FROM empleats
LEFT JOIN projectes
ON empleats.empleat_id = projectes.empleat_id;

Resultat esperat

empleat_id nom projecte
1 Jordi Projecte A
2 Marta NULL
3 Pau Projecte B

Errors comuns i consells

  • Error comú: No especificar correctament la condició de la unió (ON).
    • Consell: Assegura't que les columnes utilitzades en la condició de la unió són les correctes i existeixen en ambdues taules.
  • Error comú: Confondre un LEFT JOIN amb un INNER JOIN.
    • Consell: Recorda que un LEFT JOIN retorna totes les files de la taula esquerra, independentment de si hi ha coincidències a la taula dreta.

Conclusió

El LEFT JOIN és una eina poderosa per combinar dades de dues taules, assegurant que totes les files de la taula esquerra es mostrin, fins i tot si no hi ha coincidències a la taula dreta. Això és especialment útil quan necessitem obtenir una llista completa d'elements d'una taula amb informació addicional d'una altra taula, si està disponible. En el proper tema, explorarem el RIGHT JOIN, que és similar però amb un comportament lleugerament diferent.

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