Bonjour
je sollicite votre aide pour trouver la solution a mon problème
j'ai une table "bons" avec : id_bon,nom_bon,type_bon
et une autre table qui possède plusieurs états du bon en sachant que le dernier enregistrement est l'état actuel
la table etat_bon :
id_etat_bon, nom_etat_bon, id_bon
ou: id_etat_bon autoincrement et id_bon correspond a l'id de la premiere table
je voudrai avoir une table avec :
id_bon_etat,nom_bon,nom_etat_bon (une seule ligne doit ressortir avec le dernier état, un seul état possible )
je pense qu'il y a un truc avec inner et group by...
j'ai oublié de dire, en fait je fait un select sur cette table
du genre :
SELECT * FROM bons b INNER JOIN etats d ON b.id_bon =d.id_bon_etat WHERE b.type_bon= '0' AND d.nomEtat = 'Enregistré' GROUP BY id_bon ORDER BY id_Bon DESC LIMIT 0,50
actuellement il me sort les lignes groupées par id_bon mais me ressort tous les bons qui on eu l'état enregistré a un moment ou un autre.
j'ai essayé ca, ca me sort rien
SELECT * FROM bons WHERE id_bon IN ( SELECT * FROM etats Where nomEtat = 'Enregistré' ORDER BY id_bon_etat DESC LIMIT 1)
j'ai exécuté la requête directement sur MySQL pour voir le problème
#1235 - This version of MariaDB doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
j'ai testé ca:
SELECT * FROM bons as b INNER JOIN ( SELECT * FROM etats ORDER BY id_bon_etat DESC LIMIT 1) as e ON b.id_bon= e.id_bon ORDER BY id_bon DESC LIMIT 0,50;
ça me sort un seul enregistrement....
question : quand on fait un group by sur la colonne 3 par exemple , quelle est la valeur de la colonne 2 conservé dans le group, la première lue dans le groupe, ou la dernière, moi j'aimerais bien que ce soit la dernière.
help me please
merci pour votre aide
Christophe
Partager