|
Oui, Oracle prend en charge la commande `INNER JOIN`. Il est utilisé comme dans d'autres bases de données SQL pour combiner les lignes de deux ou plusieurs tables en fonction d'une colonne liée entre elles. Seules les lignes dont les valeurs correspondent dans les deux tables sont incluses dans le jeu de résultats.
Voici la syntaxe de base :
```sql
SELECT nom_colonne(s)
DE la table1
INNER JOIN table2 ON table1.column_name =table2.column_name;
```
Vous pouvez également utiliser l'ancienne syntaxe `JOIN`, plus verbeuse, qui est fonctionnellement équivalente à `INNER JOIN` :
```sql
SELECT nom_colonne(s)
DE table1, table2
OÙ table1.nom_colonne =table2.nom_colonne ;
```
Bien que cela fonctionne, la syntaxe `INNER JOIN` est préférée pour des raisons de lisibilité et de clarté, en particulier dans les requêtes complexes impliquant plusieurs jointures. Le mot-clé « JOIN » est généralement évité dans les pratiques de codage SQL modernes.
Exemple:
Disons que vous avez deux tables :« employés » et « départements ».
tableau des employés :
| id_employé | nom | id_département |
|-------------|-----------|----------------|
| 1 | John Doe | 10 |
| 2 | Jane Doe | 20 |
| 3 | David Lee | 10 |
tableau des départements :
| id_département | nom |
|-------------|-------------|
| 10 | Ventes |
| 20 | Commercialisation |
| 30 | Ingénierie |
Une requête `INNER JOIN` pour récupérer les noms des employés et leurs noms de département ressemblerait à ceci :
```sql
SELECT employés.nom, départements.nom
DES employés
INNER JOIN départements ON employés.department_id =départements.department_id;
```
Cela reviendrait :
| nom | nom |
|---------------|-------------|
| John Doe | Ventes |
| Jane Doe | Commercialisation |
| David Lee | Ventes |
Seuls les employés qui ont un « department_id » correspondant dans les deux tables sont inclus dans le résultat. Les employés non affectés à un département dans la table « départements », ou les départements sans employés dans la table « employés », ne seront pas inclus.
|