# Commandes SQL JOIN : analyse des données et reporting efficace

Les commandes SQL JOIN comptent parmi les commandes SQL les plus importantes pour l’**analyse et le traitement des bases de données relationnelles**. Elles permettent d’interroger 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’« appariement ». Selon le cas d’application, 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 travailler avec des bases de données, que ce soit sur site ou via le Cloud, le langage de programmation et de base de données [SQL](https://www.ionos.fr/digitalguide/serveur/know-how/definition-de-sql/) est considéré comme la norme. Il permet non seulement de créer des [bases de données relationnelles](https://www.ionos.fr/digitalguide/hebergement/aspects-techniques/base-de-donnees-relationnelle/), mais aussi d’effectuer des requêtes de données au moyen de diverses [commandes SQL](https://www.ionos.fr/digitalguide/serveur/configuration/commandes-sql/). Parmi les **commandes les plus importantes et les plus utilisées** figure la catégorie des SQL JOINS.

Les SQL JOINS sont des commandes qui permettent d’interroger, de relier et de fusionner de manière pertinente 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 étrangères qui permettent de fusionner des données à l’aide de commandes JOIN.

Note Les clés primaires et étrangères constituent des caractéristiques importantes pour les SQL JOINS. Les clés primaires identifient les lignes de manière univoque et ne peuvent pas contenir de valeurs nulles. Les clés étrangères établissent un lien entre les tables. Par exemple, dans une table concernant les employés d’une entreprise, « Identifiant employé » sert de clé primaire. Dans un tableau de véhicules, « Numéro d’immatriculation » est la clé primaire. Les deux tableaux peuvent être reliés par « Numéro d’immatriculation » comme clé étrangère dans le tableau des employés.

## Quels sont les différents types de commandes SQL JOIN ?

Selon le cas d’application, il existe **différentes commandes JOIN**. Jetons d’abord un coup d’œil aux paramètres de base :

- **`SELECT`** : définit les colonnes qui entrent en ligne de compte pour SQL JOIN. Avec un astérisque (\*), il est également possible de sélectionner l’ensemble des données.
- **`FROM`** : définit la table à partir de laquelle les données sont fusionnées avec une autre table.
- **Commande `JOIN`** : crée une table cible conformément à la commande JOIN, qui relie, fusionne ou compare les données sélectionnées.
- **`ON`** : détermine la condition JOIN selon laquelle les données récupérées sont fusionnées.

La **syntaxe de base** contient des paramètres identiques ou similaires pour la plupart des commandes SQL JOIN et se présente comme suit :

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

Conseil Vous recherchez une solution sûre et performante pour votre système de gestion de base de données ? Dans ce cas, le [serveur d’hébergement SQL](https://www.ionos.fr/cloud/hebergement-serveur-sql) de IONOS vous propose les offres de serveur et d’hébergement adéquates avec des normes européennes de protection des données, parmi lesquelles des serveurs Cloud, des vServer (VPS), des serveurs dédiés ou un hébergement Linux avec MSSQL, MySQL ou MariaDB.

Vous trouverez ci-dessous un aperçu des **jointures SQL** les plus importantes.

### SQL `INNER JOIN`

Cette commande permet de fusionner les données de deux tables dans une table de résultats si **deux valeurs correspondantes sont présentes dans une colonne commune**. La commande SQL [`INNER JOIN`](https://www.ionos.fr/digitalguide/hebergement/aspects-techniques/sql-inner-join/) est la commande JOIN la plus fréquente et la valeur par défaut si vous ne choisissez pas de type de JOIN spécifique.

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 :

```sql
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 `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`](https://www.ionos.fr/digitalguide/hebergement/aspects-techniques/sql-outer-join/) contrairement à la commande `INNER JOIN`, fusionne non seulement les lignes correspondantes, mais aussi les lignes non correspondantes par valeur NULL. Vous trouverez ci-dessous des explications détaillé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 correspondantes de la table de droite. Si les données ne correspondent pas, la commande renvoie une valeur **NULL**.

Voici un **exemple pratique** :

La fonction SQL `LEFT JOIN` fusionne les enregistrements concordants et non concordants d’une table de gauche « Clients » avec une table de droite « Véhicules » en utilisant la colonne commune « Numéro d’immatriculation ». Contrairement à la commande `INNER JOIN`, elle renvoie **même les données non concordantes** avec la valeur NULL.

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

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

### SQL `RIGHT JOIN`

La commande `RIGHT JOIN` relie les données **de la table de droite avec les données correspondantes de la table de gauche**. En cas de non-concordance, 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électionnées d’une table de gauche « Commandes », sur la base du numéro de client. En cas de non-concordance, 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 :

```sql
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 `FULL JOIN`

La commande `FULL JOIN` consiste en une **combinaison de `LEFT JOIN` et `RIGHT JOIN`** et est aussi connue sous le nom de « FULL OUTER JOIN ». La commande fusionne tous les enregistrements et toutes les colonnes des deux tables. En cas de non-concordance, la commande renvoie des valeurs NULL.

Voici un **exemple pratique** :

La fonction `FULL JOIN` fusionne toutes les données concordantes et non concordantes d’un tableau de droite « Collaborateurs » avec un tableau de gauche « Département » sur la base du numéro de département. Si aucun département ne peut être attribué, une valeur NULL est indiquée pour le service.

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

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

### SQL `CROSS JOIN`

`CROSS JOIN` est également connu sous le nom de « JOIN cartésien ». Il relie tous les enregistrements des tables de gauche et de droite **indépendamment des correspondances**. Comme il renvoie toutes les combinaisons 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 :

```sql
SELECT *
FROM Produits
CROSS JOIN Commandes
```

### SQL `NATURAL JOIN`

La commande `NATURAL JOIN` relie tous les enregistrements de deux tables **par des colonnes communes**. Comme la commande fusionne automatiquement les colonnes communes des tables, la clause ON n’est pas nécessaire.

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 :

```sql
SELECT *
FROM Équipe
NATURAL JOIN Service
```

### 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`** :

```sql
SELECT *
FROM tableA AS t1
LEFT JOIN tableA AS t2
ON t1.nom de la colonne = t2.nom de la colonne
```


This is a markdown version of: [https://www.ionos.fr/digitalguide/serveur/configuration/sql-joins/](https://www.ionos.fr/digitalguide/serveur/configuration/sql-joins/) for AI/LLM consumption.