Bonjour

Je dispose de deux tables comme ceci :

tab1 :

idC | nom

tab2

idV | date | nbP | idC

Avec une petite jointure avec tab1.idC = tab2.idC

Dans ma tab2 je stocke tous les jours nbP. Ensuite je l'affiche dans un tableau.

J'aimerais sélectionner les 30 derniers enregistrements. J'ai fais comme ca, mais cela ne marche pas. J'ai bien les 30 derniers réenregistrements mais dans le sens inverse. On commence par la date la plus récente or il fraudais commencer par la date la plus vielle dans mon tableau.
Il faudrais donc refaire un order by idV dans ma requête mais comment ?

SELECT *
FROM tb2
JOIN tab2 ON tab2.idC = tab1.idC
ORDER BY idV DESC
LIMIT 0 , 30

Cordialement :)

2 réponses


Nakor404
Auteur
Réponse acceptée

Est ce que :

SELECT * 
FROM tb2
JOIN tab2 ON tab2.idC = tab1.idC
WHERE idV IN (SELECT idV from tb2 order by idV DESC)
ORDER BY idV 
LIMIT 0 , 30

Est une bonne solution ?

salut, je pense que le LIMIT 0.30 ça va mais je pense que ton order devrais être quelque chose order BY idV DESC comme ça tu as du plus grand au plus petit et donc les 30 derniers