Archives par mot-clé : JOIN

Clause SQL JOIN

Une clause JOIN est utilisée pour combiner des lignes de deux tables ou plus, en fonction d’une colonne liée entre elles.

Une jointure est un mécanisme utilisé pour associer des tables dans une instruction SELECT.

Pour créer une jointure, vous devez spécifier toutes les tables à inclure et comment elles sont liées les unes aux autres.

Examinons les données du tableau “Commandes” ci-dessous :

Numéro-commandeNuméro-clientDate-commande
1001102020-09-08
1002992020-09-01
1003172020-08-25
1004762020-09-19

Examinons les données du tableau “Clients” ci-dessous :

Numéro-clientNom-clientPays
76JackAmérique
17JancyAllemagne
10robertInde
99BrianChine

Notez que la colonne « Numéro-client » dans la table « Commandes » fait référence au « Numéro-client » dans la table « Clients ». La relation entre les deux tables ci-dessus est la colonne “Numéro de client”.

Voyons comment créer une instruction SQL qui sélectionne les enregistrements dont les valeurs correspondent dans les deux tables.

Exemple:

SELECT Commandes.Numero_Commande, Clients.Nom_Client, Commandes.Date_Commande
  FROM Commandes
  INNER JOIN Clients ON Commandes.Num_Clients=Clents.Num_Client;

Résultat:

Numéro-CommandeNom-ClientDate-Commande
1001robert2020-09-08
1002Brian2020-09-01
1003Jancy2020-08-25
1004Jack2020-09-19

Explication:

L’instruction SELECT démarre de la même manière que toutes les instructions que vous avez vues jusqu’ici, en spécifiant les colonnes à récupérer. La grande différence ici est que deux des colonnes spécifiées (Orderid et Orderdate) se trouvent dans une table, tandis que l’autre (Customername) se trouve dans une autre table.

Contrairement à toutes les instructions SELECT précédentes, celle-ci comporte deux tables répertoriées dans la clause FROM, Orders et Customers.

Vous devez utiliser le nom de colonne complet (table et colonne séparées par un point) chaque fois qu’il existe une éventuelle ambiguïté quant à la colonne à laquelle vous faites référence. Dans ce cas, vous spécifiez Orders.Orderid et Customers.Customername.

Types de jointures :

Il existe deux types de jointures :

  • Inner Join – Récupère les valeurs correspondantes dans les deux tables.
  • Outer Join – Récupère tous les enregistrements de la table de gauche et les enregistrements correspondants de la table de droite.
    1. Left Outer Join – Récupère tous les enregistrements de la table de gauche et les enregistrements correspondants de la table de droite.
    2. Right Outer Join – Récupère tous les enregistrements de la table de droite et les enregistrements correspondants de la table de gauche.
    3. Full Outer Join – Récupère tous les enregistrements des deux tables.