bonjour,
je joins a mon message le schéma,la question et la requête.
prière de m'aider a comprendre la requête.
je me demande si il n y a pas moyen d'exprimer cette requête plus simplement
Merci d'avance
bonjour,
je joins a mon message le schéma,la question et la requête.
prière de m'aider a comprendre la requête.
je me demande si il n y a pas moyen d'exprimer cette requête plus simplement
Merci d'avance
Bonsoir,
Pas mal comme exercice
Je me suis surtout focalisé sur la question "Quels sont les buveurs qui fréquentent tous les Bars", sachant que j'aime pas plus que ça les requêtes imbriquées.
Je te propose cette requête à base de COUNT, elle te permet de récupérer le profil du buveur en même temps que le comptage:
Et j'ai pris le schéma suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT Bu.*, COUNT(*) AS num_bars FROM Buveurs Bu INNER JOIN Frequenter F ON F.RefBuveur=Bu.IdBuveur GROUP BY Bu.IdBuveur HAVING num_bars=(SELECT COUNT(*) FROM Bars)
Bars (IdBar, NomBar)
Buveurs (IdBuveur, NomBuveur)
Fréquenter(RefBuveur, RefBar)
Qu'en penses-tu?
Alors il y a quelque chose que je comprend pas dans le schéma du document proposé.
Les 3 tables présentes semblent être des tables établissant des relations entre au moins les Bars, les Buveurs et les Bieres.
Ces 3 éléments sont bien présents dans d'autres tables du type de celles que j'ai rajouté au schéma non?
Malgré cette remarque qui n'engage que moi, je pense que cette requête doit marcher :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT F.Buveur,COUNT(F.Bar) AS num_bars FROM Frequenter F GROUP BY F.Buveur HAVING num_bars=(SELECT COUNT(DISTINCT Bar) FROM Frequenter)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager