Les commandes SQL JOIN comptent parmi les commandes SQL les plus im­por­tantes pour l’analyse et le trai­te­ment des bases de données re­la­tion­nelles. Elles per­met­tent d’in­ter­ro­ger des données liées dans plusieurs tables et de les fusionner dans des tables de résultats. Dans ce domaine, on appelle cette opération la « jointure » ou l’« ap­pa­rie­ment ». Selon le cas d’ap­pli­ca­tion, des commandes JOIN telles que INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN ou FULL JOIN sont utilisées à cet effet.

Jointures SQL : que sont les commandes SQL JOIN ?

Pour tra­vail­ler avec des bases de données, que ce soit sur site ou via le Cloud, le langage de pro­gram­ma­tion et de base de données SQL est considéré comme la norme. Il permet non seulement de créer des bases de données re­la­tion­nelles, mais aussi d’effectuer des requêtes de données au moyen de diverses commandes SQL. Parmi les commandes les plus im­por­tantes et les plus utilisées figure la catégorie des SQL JOINS.

Les SQL JOINS sont des commandes qui per­met­tent d’in­ter­ro­ger, de relier et de fusionner de manière per­ti­nente des données dans plusieurs tables. La seule condition préalable est l’existence d’une connexion logique entre les tables. Cette connexion est établie par des clés primaires et étran­gères qui per­met­tent de fusionner des données à l’aide de commandes JOIN.

Note

Les clés primaires et étran­gères cons­ti­tuent des ca­rac­té­ris­tiques im­por­tantes pour les SQL JOINS. Les clés primaires iden­ti­fient les lignes de manière univoque et ne peuvent pas contenir de valeurs nulles. Les clés étran­gères éta­blis­sent un lien entre les tables. Par exemple, dans une table con­cer­nant les employés d’une en­tre­prise, « Iden­ti­fiant employé » sert de clé primaire. Dans un tableau de véhicules, « Numéro d’im­ma­tri­cu­la­tion » est la clé primaire. Les deux tableaux peuvent être reliés par « Numéro d’im­ma­tri­cu­la­tion » comme clé étrangère dans le tableau des employés.

Quels sont les dif­fé­rents types de commandes SQL JOIN ?

Selon le cas d’ap­pli­ca­tion, il existe dif­fé­rentes commandes JOIN. Jetons d’abord un coup d’œil aux pa­ra­mètres de base :

  • SELECT : définit les colonnes qui entrent en ligne de compte pour SQL JOIN. Avec un as­té­risque (*), il est également possible de sé­lec­tion­ner l’ensemble des données.
  • FROM : définit la table à partir de laquelle les données sont fu­sion­nées avec une autre table.
  • Commande JOIN : crée une table cible con­for­mé­ment à la commande JOIN, qui relie, fusionne ou compare les données sé­lec­tion­nées.
  • ON : détermine la condition JOIN selon laquelle les données ré­cu­pé­rées sont fu­sion­nées.

La syntaxe de base contient des pa­ra­mètres iden­tiques ou si­mi­laires pour la plupart des commandes SQL JOIN et se présente comme suit :

SELECT colonneA, colonneB, ...
FROM tableA
Commande JOIN tableB
ON tableA.colonne = tableB.colonne
sql
Conseil

Vous re­cher­chez une solution sûre et per­for­mante pour votre système de gestion de base de données ? Dans ce cas, le serveur d’hé­ber­ge­ment SQL de IONOS vous propose les offres de serveur et d’hé­ber­ge­ment adéquates avec des normes eu­ro­péennes de pro­tec­tion des données, parmi les­quelles des serveurs Cloud, des vServer (VPS), des serveurs dédiés ou un hé­ber­ge­ment Linux avec MSSQL, MySQL ou MariaDB.

Serveurs virtuels (VPS)
VPS éco­no­miques sur serveurs Dell En­ter­prise
  • 1 Gbit/s de bande passante et trafic illimité
  • Dis­po­ni­bi­lité de 99,99 % et cer­ti­fi­ca­tion ISO
  • As­sis­tance 24/7 primée pour sa qualité et con­seil­ler personnel

Vous trouverez ci-dessous un aperçu des jointures SQL les plus im­por­tantes.

SQL INNER JOIN

Cette commande permet de fusionner les données de deux tables dans une table de résultats si deux valeurs cor­res­pon­dantes sont présentes dans une colonne commune. La commande SQL INNER JOIN est la commande JOIN la plus fréquente et la valeur par défaut si vous ne choi­sis­sez pas de type de JOIN spé­ci­fique.

Voici un exemple pratique :

INNER JOIN est utilisé pour une table nommée « Commandes » contenant les colonnes « Numéro de commande », « Numéro client », « Produit » et « Date de commande » et une seconde table « Clients » avec les colonnes « Numéro client », « Nom » et « Adresse ». La colonne « Numéro client » sert de clé primaire dans « Clients » et de clé étrangère dans « Commandes ». INNER JOIN réunit à l’aide du numéro client toutes les commandes et données des clients dans un tableau de résultats.

La commande SQL INNER JOIN se présente comme suit :

SELECT Commandes.Numéro de commande, Clients.Nom, Commandes.Produit, Commandes.Date de commande
FROM Commandes
INNER JOIN Clients
ON Commandes.Numéro client = Clients.Numéro client
sql

SQL OUTER JOIN

OUTER JOIN sert de terme générique pour les commandes SQL LEFT JOIN, RIGHT JOIN et FULL JOIN. La commande SQL OUTER JOIN con­trai­re­ment à la commande INNER JOIN, fusionne non seulement les lignes cor­res­pon­dantes, mais aussi les lignes non cor­res­pon­dantes par valeur NULL. Vous trouverez ci-dessous des ex­pli­ca­tions dé­tail­lées sur ces commandes SQL.

SQL LEFT JOIN

La commande LEFT JOIN relie toutes les données d’une table de gauche avec les données cor­res­pon­dantes de la table de droite. Si les données ne cor­res­pon­dent pas, la commande renvoie une valeur NULL.

Voici un exemple pratique :

La fonction SQL LEFT JOIN fusionne les en­re­gis­tre­ments con­cor­dants et non con­cor­dants d’une table de gauche « Clients » avec une table de droite « Véhicules » en utilisant la colonne commune « Numéro d’im­ma­tri­cu­la­tion ». Con­trai­re­ment à la commande INNER JOIN, elle renvoie même les données non con­cor­dantes avec la valeur NULL.

La commande SQL LEFT JOIN se présente comme suit :

SELECT *
FROM Clients
LEFT JOIN Véhicules
ON Clients.Numéro d’immatriculation = Véhicules.Numéro d’immatriculation
sql

SQL RIGHT JOIN

La commande RIGHT JOIN relie les données de la table de droite avec les données cor­res­pon­dantes de la table de gauche. En cas de non-con­cor­dance, il y a également une valeur NULL dans les colonnes de la table de gauche.

Voici un exemple pratique :

La commande SQL RIGHT JOIN ajoute aux données d’une table de droite « Clients » toutes les données sé­lec­tion­nées d’une table de gauche « Commandes », sur la base du numéro de client. En cas de non-con­cor­dance, la commande indique la valeur NULL : par exemple, s’il n’existe ni commandes ni noms pour un numéro de client.

La commande SQL RIGHT JOIN se présente comme suit :

SELECT Commandes.Numéro de commande, Clients.Nom, Commandes.Produit, Commandes.Date de commande
FROM Clients
RIGHT JOIN Commandes
ON Commandes.Numéro client = Clients.Numéro client
sql

SQL FULL JOIN

La commande FULL JOIN consiste en une com­bi­nai­son de LEFT JOIN et RIGHT JOIN et est aussi connue sous le nom de « FULL OUTER JOIN ». La commande fusionne tous les en­re­gis­tre­ments et toutes les colonnes des deux tables. En cas de non-con­cor­dance, la commande renvoie des valeurs NULL.

Voici un exemple pratique :

La fonction FULL JOIN fusionne toutes les données con­cor­dantes et non con­cor­dantes d’un tableau de droite « Col­la­bo­ra­teurs » avec un tableau de gauche « Dé­par­te­ment » sur la base du numéro de dé­par­te­ment. Si aucun dé­par­te­ment ne peut être attribué, une valeur NULL est indiquée pour le service.

La commande SQL FULL JOIN se présente comme suit :

SELECT *
FROM Collaborateurs
FULL JOIN Département
ON Collaborateurs.Numéro département = Département.Numéro département
sql

SQL CROSS JOIN

CROSS JOIN est également connu sous le nom de « JOIN cartésien ». Il relie tous les en­re­gis­tre­ments des tables de gauche et de droite in­dé­pen­dam­ment des cor­res­pon­dances. Comme il renvoie toutes les com­bi­nai­sons possibles, il n’y a ici pas besoin de clause ON.

Voici un exemple pratique :

CROSS JOIN fusionne toutes les données de la table de droite « Produits » avec la table de gauche « Commandes ».

La commande SQL CROSS JOIN se présente comme suit :

SELECT *
FROM Produits
CROSS JOIN Commandes
sql

SQL NATURAL JOIN

La commande NATURAL JOIN relie tous les en­re­gis­tre­ments de deux tables par des colonnes communes. Comme la commande fusionne au­to­ma­ti­que­ment les colonnes communes des tables, la clause ON n’est pas né­ces­saire.

Voici un exemple pratique :

La commande NATURAL JOIN fusionne les tables « Équipe » et « Service » à l’aide de colonnes communes. La commande ne renvoie des résultats que s’il y a au moins une colonne commune.

SQL NATURAL JOIN se présente comme suit :

SELECT *
FROM Équipe
NATURAL JOIN Service
sql

SQL SELF JOIN

La commande SQL SELF JOIN relie une table à elle-même en la traitant comme une table gauche et droite. Vous pouvez donc en principe utiliser n’importe quelle autre commande pour une opération SELF JOIN. Dans la syntaxe, t1 et t2 servent d’alias pour une table droite et gauche, puisqu’il s’agit de la même table.

Syntaxe de base avec l’exemple LEFT JOIN :

SELECT *
FROM tableA AS t1
LEFT JOIN tableA AS t2
ON t1.nom de la colonne = t2.nom de la colonne
sql
Aller au menu principal