|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() |
Bonjour à tous,
Je travaille sur une table qui a la structure suivante : Id Niveau Valeur 1 3 A 2 3 B 3 3 C 4 3 D 5 4 E 6 4 F 7 5 G 8 5 H 6 5 I 2 5 J Je voudrais ramener en une requête tous les Ids de cette table et la valeur associée pour le niveau le plus grand (et seulement pour ce niveau). La structure de la table n'est-elle pas la bonne pour résoudre ce genre de problème ? Merci pour votre aide. |
|
|
00
|
|
|
#2 | ||||
|
Membre éclairé
![]() Inscription : décembre 2003 Messages : 431 ![]() |
Tu ne pourra pas faire ce que tu souhaite en une seule requete (enfin je pense) mais en 2 oui ..
Pour recuperer les ids : Code :
Pour la valeur du plus haut niveau : Code :
Voila ce que moi je ferai |
||||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() |
Merci pour ta réponse.
La requête select MAX(niveau) from taTable (c'est à dire le sous select de ta seconde requête) ne va rammener que le plus grand niveau de la table c'est à dire 5. Je pense que la seconde requête ne ramènera donc que les valeurs de niveau 5. Après avoir cherché davantage la requête suivante répond presque à ma question : SELECT id_settings, MAX( Niveau ) FROM settings GROUP BY id_settings Elle me rammène tous les Ids de la table de façon unique avec leur niveau le plus elevé trouvé, mais maintenant je ne sais comment rammener la valeur... |
|
|
00
|
|
|
#4 | ||
![]() ![]() Inscription : janvier 2005 Messages : 2 320 ![]() |
Code :
|
||
|
|
00
|
|
|
#5 | ||
![]() ![]() Inscription : janvier 2005 Messages : 2 320 ![]() |
Code :
|
||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() |
Merci, je pense effectivement que cette requête fonctionne, par contre je n'arrive pas à la tester sous MySQL. Apparemment il n'est pas possible d'exploiter le resultat d'un select dans une clause where, ce qui est assez étonnant et décevant... Du coup je ne peux même pas la tester...
Merci quand même ! |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() |
Je pense que cette requête fonctionne aussi :
select id_settings, valeur from settings a , (select id_settings, max(niveau) from settings group by id_settings) b (b1, b2) where a.id_settings = b1 and a.niveau = b2 Mais ce n'est pas non plus possible de la tester sous MySQL (easyPHP). Ca vous parait normal ? |
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : janvier 2005 Messages : 2 320 ![]() |
ca dépende la version de mYSQL
je crois que si ta version est inférieur a la 4.3 , c'est pas bon |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() |
J'utilise la 4.0.15, on va dire que c'est ça, je vais installer EasyPHP 1.8 pour voir.
Merci pour votre aide ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com