PaliSkill
SQL Intermédiaire

Leçon 8 / 9 — Chapitre 1: Jointures fondamentales

Éviter les colonnes ambiguës entre tables jointes

Quand deux tables jointes possèdent une colonne du même nom, l'utiliser sans préfixe dans un SELECT provoque une erreur d'ambiguïté : le moteur SQL ne sait pas de quelle table elle doit venir.

produits et commandes ont chacune une colonne id — celle de produits identifie un produit, celle de commandes identifie une commande, deux choses différentes.

SELECT id FROM produits p
INNER JOIN commandes c ON p.id = c.produit_id;

Cette requête échoue : id existe à la fois dans produits et dans commandes, sans préfixe pour lever le doute.

SELECT p.id AS produit_id, c.id AS commande_id
FROM produits p
INNER JOIN commandes c ON p.id = c.produit_id;

Préfixer chaque colonne ambiguë par son alias de table (p.id, c.id) résout le problème — et des alias de colonne (AS produit_id, AS commande_id) évitent en plus d'avoir deux colonnes appelées id dans le résultat.

À retenir :

  • Une colonne présente dans plusieurs tables jointes doit être préfixée par un alias de table (p.id) dès qu'elle apparaît dans la requête, sinon le moteur SQL renvoie une erreur d'ambiguïté.
  • Une colonne dont le nom n'existe que dans une seule des tables jointes n'a pas besoin de préfixe, mais en mettre un partout reste une habitude de lisibilité utile.
  • Des alias de colonne distincts (produit_id, commande_id) évitent en plus d'avoir deux colonnes de même nom dans le résultat final.

À vous de jouer : repérez, dans les requêtes des leçons précédentes de ce chapitre, une colonne qui aurait été ambiguë sans le préfixe p. ou c..

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 80 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès