10 derniers enregsitrements - SQL/NoSQL - Programmation
Marsh Posté le 10-12-2008 à 13:39:02
J'ai pas compris, c'est quoi le problème avec la 1ère requête que tu écris là ?
Marsh Posté le 10-12-2008 à 13:55:47
La première requête fonctionne et me renvoie bien les 10 derniers enregistrements.
Je souhaite par contre afficher ces 10 derniers enregistrements par ordre décroissant à partir du critère champ1.
Marsh Posté le 10-12-2008 à 14:24:34
Je comprend pas. Tu peux mettre ici un exemple de ce que tu voudrais obtenir ?
Marsh Posté le 10-12-2008 à 14:38:09
Bizarre !
C'est quoi l'erreur exactement ?
Marsh Posté le 10-12-2008 à 15:28:27
select champ1, champ2 from table order by champ1 desc, id desc limit 10; --> plus de 10 enregistrements sont affichés, les enregistrements à valeur nulle ne sont pas affichés.
select champ1, champ2 from table order by id desc limit 10, champ1 desc; --> Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'champ1 DESC' at line 1
Marsh Posté le 10-12-2008 à 15:33:10
esox_ch a écrit : Je comprend pas. Tu peux mettre ici un exemple de ce que tu voudrais obtenir ? |
Marsh Posté le 10-12-2008 à 15:43:23
id champ1 champ2
1 2563 toto
2 null titi
3 4698 ceffi
4 null tutu
5 10 albe
6 2563 toto
7 null titi
8 4698 ceffi
9 null tutu
10 10 albe
Si je raisonne sur les 5 derniers enregistrements, je voudrai avoir cet affichage là :
4698 ceffi
2563 toto
10 albe
0 titi
0 tutu
Les 5 derniers enregsitrements classés par ordre décroissant sur le critère champ1
Marsh Posté le 10-12-2008 à 15:47:19
select champ1,champ2 from ta_table order by champ1 desc limit 10;
C'est quoi le soucis avec ça ?
Marsh Posté le 10-12-2008 à 16:41:47
Bien, le order by doit se faire sur l'id pour avoir les 10 derniers !! non ?
select champ1,champ2 from ta_table order by champ1 desc limit 10; -> ne me renvoie pas le bon affichage. Il renvoie bien 10 valeurs mais pas les dernières. Dans les 10 enregistrements renvoyés, j'ai des doublons et je n'ai pas les valeurs null de type 0 titi ou 0 tutu
Marsh Posté le 10-12-2008 à 16:43:01
Le soucis c'est que le tri s'effactue avant de prendre les 10 derniers, lui il veut prendre les 10 derniers puis trier.
Marsh Posté le 10-12-2008 à 16:45:30
Code :
|
Marsh Posté le 10-12-2008 à 16:50:34
J'ai rien dit
Marsh Posté le 10-12-2008 à 16:55:23
Merci sebondus. Je ne savais pas que l'on pouvait imbriquer des select.
J'ai toutefois le retour suivant :
Erreur : Every derived table must have its own alias
Marsh Posté le 10-12-2008 à 16:59:27
Code :
|
Marsh Posté le 10-12-2008 à 17:03:11
Super ! merci beaucoup sebondus.
Merci également à kao98 et à esox_ch pour l'entraide.
Marsh Posté le 10-12-2008 à 13:30:47
Bonjour,
Je voudrais afficher les 10 derniers enregistrements selon un tri décroissant sur le champ1.
select champ1, champ2 from table order by id desc limit 10;
Si j'exécute :
select champ1, champ2 from table order by champ1 desc, id desc limit 10; --> cela ne fonctionne pas.
Comment puis-je corriger cela ?
Merci bien