Bonjour,
j'aurais aimé votre avis sur la faisabilité d'une requête (quasi sûr que c'est possible, mais je n'y arrive pas).
J'ai une table d'observations avec comme identifiant unique id_poi. Chaque observation est liée à une commune.
id_poi, commune_id_commune
J'ai une table qui permet d'enregistrer des votes sur ces observations associant l'adresse e-mail d'une personne
vote_id, id_poi
J'aimerais pour toutes les communes ne ressortir que le top 5 des observations les plus votées....j'en suis là :
mais bien entendu, ça me ressort toutes les observations avec le nombre de votes associés et je dois filtrer côté langage de programmation....j'aimerais le faire côté SQL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT count(*) as nb_votes, poi_poi_id, lib_commune FROM `votes` INNER JOIN poi ON poi.id_poi = votes.id_poi INNER JOIN commune ON poi.commune_id_commune = commune.id_commune GROUP BY poi_poi_id ORDER BY commune.lib_commune ASC, nb_votes DESC, poi.id_poi ASC
je ne trouve pas de clause having to qui ferait ce que je veux...
Merci d'avance pour vos lumières
Gérald
PS : je suis sur MariaDB 10
Partager