Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
704 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] tri dans une requette

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] tri dans une requette

n°1879273
reglisse
Posté le 29-04-2009 à 14:22:08  profilanswer
 

bonjour,

 

je souhaite faire un tri dans une requette comme ci dessous

 
Code :
  1. SELECT prenom1,prenom2,note1,note2 FROM base WHERE **** ORDER BY a="Bernard",b="Bernard"
 

et ensuite faire un tri sur les notes1 pour les "Bernard" de prenom1 et un tri sur les notes2 pour les "Bernard" de prenom2  :

 

bernard1 pierre1    note1=14 note2=9
bernard1 pierre1    note1=12 note2=17
bernard1 marc2     note1=10 note2=5
jean1      bernard2 note1=9   note2=15
eric1       bernard2 note1=14 note2=9

 

tout ce que j'ai réussi à faire c'est :

 
Code :
  1. SELECT prenom1,prenom2,note1,note2 FROM base WHERE **** ORDER BY a="bernard",b="bernard",note1 DESC,note2 DESC
 

et j'obtiens alors :

 

eric1       bernard2 note1=14 note2=10
bernard1 pierre1    note1=14 note2=9
bernard1 pierre1    note1=12 note2=17
bernard1 marc2     note1=10 note2=5
jean1      bernard2 note1=9   note2=15

 

voiloù si yen a qui ont compris mon délire et possède la solution merçi bcp de m'aider :hello:

  



Message édité par reglisse le 29-04-2009 à 14:27:05
mood
Publicité
Posté le 29-04-2009 à 14:22:08  profilanswer
 

n°1879274
flo850
moi je
Posté le 29-04-2009 à 14:24:12  profilanswer
 

un truc comme ça devrait le faire :  

Code :
  1. SELECT prenom1,note1 FROM base WHERE prenom1='bernard' ORDER BY note
  2. UNION
  3. SELECT prenom2,note2 FROM base WHERE prenom2='bernard' ORDER BY note


---------------

n°1879291
reglisse
Posté le 29-04-2009 à 14:44:19  profilanswer
 

le problème c'est que je souhaite limiter à 10 le nombre de résultat pour faire une pagination ( limit $db,0 )
 

n°1879295
flo850
moi je
Posté le 29-04-2009 à 14:47:31  profilanswer
 

Citation :

To use an ORDER BY or LIMIT clause to sort or limit the entire UNION result, parenthesize the individual SELECT statements and place the ORDER BY or LIMIT after the last one. The following example uses both clauses:
 
(SELECT a FROM t1 WHERE a=10 AND B=1)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2)
ORDER BY a LIMIT 10;


 
 
maintenant, tu peux faire du ménage dans ta base de données, que je retroue mon podium d'oc en % :d


---------------

n°1879304
reglisse
Posté le 29-04-2009 à 14:57:14  profilanswer
 

oki merçi bcp ;) tu m'as donné du boulot  
 
 
j'ai fait du ménage malgré tout tu ne repasse pas premier dsl :D

n°1879311
flo850
moi je
Posté le 29-04-2009 à 15:04:21  profilanswer
 

non, mais il y avait  des 166@4000   , maintenant c'est mieux :d
edit : et puis il faudrait que je le ressorte le p4A un jour ou je m'ennuie


Message édité par flo850 le 29-04-2009 à 15:04:50

---------------

n°1879593
reglisse
Posté le 30-04-2009 à 09:39:56  profilanswer
 

finalement j'ai fait ça :
 
base contient les champs prenom1,prenom2,note1,note2
   

Code :
  1. (SELECT prenom1,note1 FROM base WHERE prenom1='bernard' ORDER BY note1) UNION (SELECT prenom2,note2 FROM base WHERE prenom2='pierre' ORDER BY note2) Limit 0,10


 
espérant avoir d'abord les prenom1 triés par les note1, puis les prenom2 triés par les note2 mais en fait le tri ne passe pas ! j'ai seulement les prenoms1 puis les prenom2 mais par triés comme je veux

n°1879664
casimimir
Posté le 30-04-2009 à 12:01:55  profilanswer
 

union agrège et donc un effet de bord est qu'il trie, le plus sur est
 

Code :
  1. select prenom,note,ordre
  2. from
  3. (SELECT prenom1 as prenom,note1 as note,1 as ordre
  4. FROM base
  5. WHERE prenom1='bernard' 
  6. UNION ALL
  7. SELECT prenom2,note2,2 as ordre
  8. FROM base
  9. WHERE prenom2='pierre')
  10. order by ordre, note, prenom
  11. Limit 0,10


 
et j'ai encore oublié la syntaxe de la balise sql

n°1879782
reglisse
Posté le 30-04-2009 à 15:46:44  profilanswer
 

merci pour ta réponse j'ai essayé ça mais j'aimerai classé les 'pierre' par les 'note2' et cela ne passe pas ça reste classé par 'note'
 
à mon avis c'est pas possible avec une seul requête...


Message édité par reglisse le 30-04-2009 à 15:53:06

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] tri dans une requette

 

Sujets relatifs
[SQL] deux count dans une requette[SQL] requette avec concaténation et disctinct ....
PRobleme requette SQLBesoin d'une petite requette SQL
Probleme Requette SQLrequette sql (mysql) [RESOLU]
Requette partielle SQLrequette SQL
Requette SQL[SQL] requette avec un LIKE mais inversé
Plus de sujets relatifs à : [SQL] tri dans une requette


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR