Introducció

En SQL, l'operació RIGHT JOIN (també coneguda com a RIGHT OUTER JOIN) s'utilitza per combinar files de dues taules basant-se en una condició comuna. A diferència del LEFT JOIN, que retorna totes les files de la taula esquerra i les files coincidents de la taula dreta, el RIGHT JOIN retorna totes les files de la taula dreta i les files coincidents de la taula esquerra. Si no hi ha cap coincidència, les columnes de la taula esquerra contindran valors NULL.

Sintaxi

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

Explicació de la Sintaxi

  • SELECT column_name(s): Especifica les columnes que vols seleccionar.
  • FROM table1: Especifica la primera taula.
  • RIGHT JOIN table2: Especifica la segona taula i indica que es farà un RIGHT JOIN.
  • ON table1.column_name = table2.column_name: Defineix la condició de combinació entre les dues taules.

Exemple Pràctic

Suposem que tenim dues taules: Employees i Departments.

Taula Employees

EmployeeID Name DepartmentID
1 Alice 1
2 Bob 2
3 Charlie 3

Taula Departments

DepartmentID DepartmentName
1 HR
2 IT
4 Marketing

Consulta amb RIGHT JOIN

SELECT Employees.EmployeeID, Employees.Name, Departments.DepartmentName
FROM Employees
RIGHT JOIN Departments
ON Employees.DepartmentID = Departments.DepartmentID;

Resultat

EmployeeID Name DepartmentName
1 Alice HR
2 Bob IT
NULL NULL Marketing

Explicació del Resultat

  • La fila amb DepartmentID 1 (HR) té una coincidència amb l'empleat Alice.
  • La fila amb DepartmentID 2 (IT) té una coincidència amb l'empleat Bob.
  • La fila amb DepartmentID 4 (Marketing) no té cap coincidència a la taula Employees, per tant, les columnes EmployeeID i Name contenen valors NULL.

Exercicis Pràctics

Exercici 1

Descripció: Tenim dues taules, Orders i Customers. Utilitza un RIGHT JOIN per obtenir una llista de totes les comandes, incloent-hi els clients que no tenen comandes.

Taula Orders

OrderID CustomerID OrderDate
101 1 2023-01-01
102 2 2023-01-02
103 3 2023-01-03

Taula Customers

CustomerID CustomerName
1 John
2 Jane
4 Mike

Consulta

SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName
FROM Orders
RIGHT JOIN Customers
ON Orders.CustomerID = Customers.CustomerID;

Resultat Esperat

OrderID OrderDate CustomerName
101 2023-01-01 John
102 2023-01-02 Jane
NULL NULL Mike

Exercici 2

Descripció: Tenim dues taules, Products i Suppliers. Utilitza un RIGHT JOIN per obtenir una llista de tots els proveïdors, incloent-hi els productes que no tenen proveïdors.

Taula Products

ProductID ProductName SupplierID
201 Laptop 1
202 Mouse 2
203 Keyboard 3

Taula Suppliers

SupplierID SupplierName
1 Supplier A
2 Supplier B
4 Supplier C

Consulta

SELECT Products.ProductID, Products.ProductName, Suppliers.SupplierName
FROM Products
RIGHT JOIN Suppliers
ON Products.SupplierID = Suppliers.SupplierID;

Resultat Esperat

ProductID ProductName SupplierName
201 Laptop Supplier A
202 Mouse Supplier B
NULL NULL Supplier C

Errors Comuns

  1. Oblidar la condició de combinació (ON): Sense una condició de combinació, el RIGHT JOIN no sabrà com combinar les files de les dues taules.
  2. Confondre RIGHT JOIN amb LEFT JOIN: Recorda que el RIGHT JOIN retorna totes les files de la taula dreta, mentre que el LEFT JOIN retorna totes les files de la taula esquerra.

Conclusió

El RIGHT JOIN és una eina poderosa per combinar dades de dues taules, assegurant que totes les files de la taula dreta siguin retornades, independentment de si tenen coincidències a la taula esquerra. Això és especialment útil quan necessites assegurar-te que totes les entrades d'una taula específica siguin incloses en els resultats de la consulta. Practica amb diferents conjunts de dades per familiaritzar-te amb el seu comportament i aplicacions.

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