Bonjour à tous,
J'ai un soucis avec une requête, il me semble que c'est simple, mais je bloque dessus depuis pas mal de temps, alors que la réponse est, je suis sûr, très simple !
Je vous donne ma table de test :
et les valeurs de test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE TABLE IF NOT EXISTS `test_concours` ( `id` int(11) NOT NULL auto_increment, `concours` varchar(255) NOT NULL, `score` int(11) NOT NULL, `nom` varchar(255) NOT NULL, PRIMARY KEY (`id`) )
Je recherche à avoir le plus petit score, et le nom du participant ayant eu ce score, pour chaque concours.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 INSERT INTO `test_concours` (`id`, `concours`, `score`, `nom`) VALUES (1, 'superconcours', 45, 'tommy'), (2, 'superconcours', 56, 'bob'), (3, 'superconcours', 89, 'tommy'), (4, 'lo-cado', 52, 'tommy'), (5, 'lo-cado', 85, 'bob'), (6, 'cadomania', 39, 'bob'), (7, 'superconcours', 33, 'peter'), (8, 'cadomania', 45, 'peter'), (9, 'cadomania', 69, 'bob'), (10, 'megaprix', 59, 'tommy');
Je devrais avoir ceci :
10 megaprix 59 tommy
4 lo-cado 52 tommy
7 superconcours 33 peter
6 cadomania 39 bob
Mais impossible de faire ça avec une requête non imbriquée (j'ai besoin d'une requête non imbriquée pour inclure des options de filtres).
Voici la requête que j'ai en ce moment, qui me donne pas vraiment les bons résultats (essayer avec MIN et MAX) :
J'ai bien sur cherché sur internet, mais rien de ce que j'ai pu essayer ne marche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT concours, id, score, nom FROM test_concours GROUP BY concours HAVING score = MIN(score) ORDER BY concours
Merci pour votre aide sur ce problème !
Guildem
Partager