JOIN SQL

La jointure SQL est utilisée pour interroger des données à partir de deux ou plusieurs tables en fonction de la relation entre les colonnes de ces tables.

Join et Key

Parfois, pour obtenir des résultats complets, nous devons obtenir des résultats de deux ou plus de tables. Nous devons alors exécuter une jointure.

Les tables dans la base de données peuvent être liées entre elles par des clés. Une clé primaire (Primary Key) est une colonne où chaque valeur de la ligne est unique. Dans la table, chaque valeur de la clé primaire est unique. Le but de cela est de lier les données entre les tables sans répéter chaque données de la table.

Veuillez consulter la table "Persons":

Id_P LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

Veuillez noter que la colonne "Id_P" est la clé primaire de la table "Persons". Cela signifie qu'aucune deux lignes ne peuvent avoir la même valeur d'Id_P. Même si les noms de deux personnes sont complètement identiques, l'Id_P peut les distinguer.

Veuillez maintenant consulter la table "Orders":

Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 65

Veuillez noter que la colonne "Id_O" est la clé primaire de la table "Orders", et la colonne "Id_P" de la table "Orders" est utilisée pour faire référence à la table "Persons" sans utiliser leurs noms exacts.

Veuillez noter que la colonne "Id_P" relie les deux tables ci-dessus.

Référence à deux tables

Nous pouvons obtenir des données de deux tables en nous référant aux deux tables :

Qui a commandé le produit et quel produit ont-ils commandé ?

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P 

Jeu de résultats :

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678

SQL JOIN - Utilisation de Join

En plus de la méthode ci-dessus, nous pouvons également utiliser le mot-clé JOIN pour obtenir des données de deux tables.

Si nous voulons lister les commandes de toutes les personnes, nous pouvons utiliser la requête SELECT suivante :

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName

Jeu de résultats :

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678

Différents JOIN SQL

En plus de l'INNER JOIN (connexion interne) que nous avons utilisé dans les exemples ci-dessus, nous pouvons également utiliser d'autres types de connexions.

Voici une liste des types de JOIN que vous pouvez utiliser, ainsi que leurs différences.

  • JOIN: Retourne les lignes si au moins une correspondance est trouvée dans la table
  • LEFT JOIN: Retourne toutes les lignes de la table gauche même si il n'y a pas de correspondance dans la table droite
  • RIGHT JOIN: Retourne toutes les lignes de la table droite même si il n'y a pas de correspondance dans la table gauche
  • FULL JOIN: Retourne les lignes tant que l'une des tables contient une correspondance