ON Animal.mere_id = Mere.id
INNER JOIN Espece
ON Animal.espece_id = Espece.id
WHERE Espece.nom_courant = 'chat';
Si celle-là, vous l'avez trouvée tout seuls, je vous félicite ! Sinon, c'est un peu normal. Vous voici face au premier cas dans
lequel les alias sont obligatoires. En effet, vous aviez sans doute compris que vous pouviez faire FROM Animal INNER
JOIN Animal, puisque j'avais mentionné les auto-jointures, mais vous avez probablement bloqué sur la clause ON.
Comment différencier les colonnes d'Animal dans FROM des colonnes d'Animal dans JOIN ? Vous savez maintenant qu'il
suffit d'utiliser des alias.
Il faut faire une jointure sur trois tables puisqu'au final, vous avez besoin des noms de trois animaux. Or en liant deux tables
Animal ensemble, vous avez deux colonnes nom. Pour pouvoir en avoir trois, il faut lier trois tables.
Prenez le temps de bien comprendre les auto-jointures, le pourquoi du comment et le comment du pourquoi. Faites des
schémas si besoin, imaginez les tables intermédiaires.
2. Je suis ton père
Histoire de se détendre un peu, vous devez maintenant obtenir la liste des enfants de Bouli (nom, sexe et date de naissance).
Secret (cliquez pour afficher)
Code : SQL
SELECT Animal.nom, Animal.sexe, Animal.date_naissance
FROM Animal
INNER JOIN Animal AS Pere
ON Animal.pere_id = Pere.id
WHERE Pere.nom = 'Bouli';
Après la requête précédente, celle-ci devrait vous sembler plutôt facile ! Notez qu'il y a plusieurs manières de faire bien sûr.
En voici une autre :
Code : SQL
SELECT Enfant.nom, Enfant.sexe, Enfant.date_naissance
FROM Animal
INNER JOIN Animal AS Enfant
ON Enfant.pere_id = Animal.id
WHERE Animal.nom = 'Bouli';
L'important, c'est le résultat ! Évidemment, si vous avez utilisé 45 jointures et 74 conditions, alors ce n'est pas bon non plus.
Du moment que vous n'avez joint que deux tables, ça devrait être bon.
3. C'est un pure race ?
Courage, c'est la dernière (et la plus thrash
)!
Vous devez obtenir la liste des animaux dont on connaît le père, la mère, la race, la race du père, la race de la mère. Affichez le
nom et la race de l'animal et de ses parents, ainsi que l'espèce de l'animal (pas des parents).
Secret (cliquez pour afficher)
Code : SQL
Partie 2 : Index, jointures et sous-requêtes
111/414
www.openclassrooms.com
Précédent

- 111/413

Suivant