Comprendre comment lier plusieurs tables en SQL peut s’avérer complexe.
Des erreurs dans les jointures peuvent conduire à des données incorrectes et à des requêtes inefficaces.
Cet article vous guidera à travers l’écriture de requêtes SQL multi-tables, en expliquant les syntaxes clés pour des jointures claires et précises.
Appréhendez les fondamentaux du langage SQL pour savoir assimiler ses fonctions standards.

Dans cette section, vous apprendrez à écrire des requêtes multi-tables avec condition . Une jointure avec condition permet de lier des enregistrements spécifiques de plusieurs tables en définissant une condition qui les relie, généralement via une clé primaire dans une table et une clé étrangère dans une autre.
SQL Multi-Tables : Syntaxe Non Normalisée
L’une des façons classiques d’écrire une jointure conditionnelle en SQL est de l’utiliser directement dans la clause WHERE. Bien que cette méthode ne soit pas la plus recommandée dans les bases de données modernes (car elle peut mener à des ambiguïtés), elle reste une syntaxe simple et fonctionnelle.
SELECT [DISTINCT ] { * , [nom_colonne1 [AS] alias1 [,...]}
FROM nom_table1 [AS] alias1, nom_table2 [AS] alias2
[ WHERE nom_table1.nom_colonne=nom_table2.nom_colonne];
- DISTINCT(facultatif) :Supprime les doublons dans les résultats.
- nom_table1, nom_table2 :Vous spécifiez deux tables (ou plus) dans la clause FROM.
- alias1, alias2(facultatif) :Les alias sont utilisés pour simplifier la lecture et l’écriture de la requête.
- nom_table1.nom_colonne = nom_table2.nom_colonne :Condition qui relie les deux tables, typiquement entre une clé étrangère et une clé primaire.
Lorsque vous écrivez une requête multi-tables avec condition, vous pouvez lier les tables entre elles à travers une clause WHERE. Cela permet de spécifier la relation entre deux colonnes. Si vous utilisez des alias, il est essentiel de bien comprendre qu’ils servent à réduire la longueur de votre code et à rendre votre requête plus lisible.
Désavantage : Moins lisible et ne permet pas de spécifier facilement les types de jointures (comme LEFT JOIN, RIGHT JOIN, etc.).
Exemple : Tables clients, commandes et employés
Imaginons que vous ayez trois tables : clients , commandes et employés . Nous allons écrire une requête SQL qui relie ces trois tables pour afficher des informations spécifiques.
Voici un exemple simple pour joindre les tables Clients, Employes et Commandes avec une syntaxe non normalisée :
SELECT cl.SOCIETE, e.NOM, cmd.DATE_COMMANDE
FROM CLIENTS cl, EMPLOYES e, COMMANDES cmd
WHERE cmd.CODE_CLIENT = cl.CODE_CLIENT AND cmd.NO_EMPLOYE = e.NO_EMPLOYE;
- Nous sélectionnons le nom de la société (SOCIETE), le nom de l’employé (NOM), et la date de la commande (DATE_COMMANDE).
- Les jointures sont définies dans la clause WHERE.
Résultat attendu :
SQL Multi-Tables : Syntaxe Normalisée
Dans la syntaxe normalisée , on utilise explicitement les mots-clés de jointure (JOIN, LEFT JOIN, RIGHT JOIN, etc.), ce qui rend la requête plus claire et permet de définir explicitement les relations entre les tables.
SELECT [DISTINCT ] { * , [nom_colonne1 [AS] alias1 [,...]}
FROM nom_table1 [AS] alias1 [ JOIN nom_table2 [AS] alias2
ON (nom_table1.nom_colonne= nom_table1.nom_colonne) ];
- Exemple jointure avec condition :Normalisée
Voici la même requête, mais avec une syntaxe normalisée :
SELECT cl.SOCIETE, e.NOM, cmd.DATE_COMMANDE
FROM COMMANDES cmd
INNER JOIN CLIENTS cl ON cmd.CODE_CLIENT = cl.CODE_CLIENT
INNER JOIN EMPLOYES e ON cmd.NO_EMPLOYE = e.NO_EMPLOYE;
Cette requête est plus explicite, grâce à l’utilisation de INNER JOIN, et montre clairement les relations entre les tables.
- Résultat attendu :
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment écrire une requête SQL multi-tables avec condition ?
Quels sont les avantages de la syntaxe normalisée en SQL ?
Quand utiliser DISTINCT dans une requête SQL ?
Quels sont les désavantages des jointures dans la clause WHERE ?
Comment optimiser une requête SQL avec plusieurs tables ?
Conclusion
En maîtrisant les requêtes SQL multi-tables, vous pouvez gérer efficacement des bases de données complexes. Comment allez-vous appliquer ces techniques dans vos projets SQL futurs ?