PythonClub — Jointures
JOIN, DISTINCT, sous-requêtes
Enonce
Base PythonClub — requêtes avec jointures :
- Nom et prénom de l'auteur de la publication n°13
- Nom et prénom (sans doublons) des auteurs des 10 commentaires les plus récents
- Nom et prénom de tous les amis de l'utilisateur 10
- Publications ayant au moins un commentaire (via nb_com)
- La publication avec le maximum de commentaires (sous-requête)
📖 Rappel — Jointures SQL
SELECT u.nom, u.prenom
FROM Users u JOIN Posts p ON u.id = p.id_user
WHERE p.id = 13
-- Amis (graphe non orienté) :
JOIN Friendships f ON (u.id = f.id_user1 OR u.id = f.id_user2)
WHERE (f.id_user1 = 10 OR f.id_user2 = 10) AND u.id != 10
FROM Users u JOIN Posts p ON u.id = p.id_user
WHERE p.id = 13
-- Amis (graphe non orienté) :
JOIN Friendships f ON (u.id = f.id_user1 OR u.id = f.id_user2)
WHERE (f.id_user1 = 10 OR f.id_user2 = 10) AND u.id != 10
📖 Rappel de cours
Relier les tables par leurs clés pour afficher ensemble des informations qui vivent dans des tables différentes, avec DISTINCT lorsque la jointure duplique.
⚠ Le piège : Une jointure multiplie les lignes dès qu'un élément d'un côté correspond à plusieurs de l'autre. C'est normal — mais il faut le savoir avant de compter, sous peine de compter plusieurs fois la même chose.
← Exercices SQL pour la prépa — bases de données en CPGE
Exercices du meme theme
- Jointures et Agrégations
- PythonClub — Requêtes de base
- PythonClub — Agrégations avancées
- Candidats en MP
- Notes à Polytechnique
La correction commentee, les indices progressifs, l'execution du code dans le navigateur et la verification par l'IA sont reserves aux abonnes.