Dernière insertion de ma table SQL MySQL

Résolu/Fermé
Pytah - 5 janv. 2023 à 12:16
 Pytah - 5 janv. 2023 à 16:33

Bonjour, 

Je cherche à retourner la dernière insertion dans ma table selon l'id d'une FK sachant que l'élément à plusieurs id, je m'explique.

Le contexte : j'ai une table "problème" qui référence des problèmes et l'id de ces problèmes et dans une table "démarche" (FK probleme_id dans "démarche") qui contient toutes les démarches qui ont permis de résoudre le problème (comme un historique si vous voulez).

Ma requête  : 

select MAX(id), libelle_demarche, probleme_id FROM demarche WHERE probleme_id = 560

Problème, mon id retourné est bien celui de la dernière démarche en fonction de probleme_id mais le libelle de démarche ne correspond pas.

2 screens et vous allez comprendre : 

La requête ci-dessus : 

La requête sans le MAX(id), qui va afficher toutes les démarches enefonction de mon probleme_id toujours : 

select id, libelle_demarche, probleme_id FROM demarche WHERE probleme_id = 560

Cette requête retourne : 

On voit bien ici le problème, l'id de ma dernière démarche est 9702 et son libelle est "dernière action" alors que sur ma requête précédente le libelle était "poteau remis en place qui à l'id 962, qui n'est pas le MAX(id).

Pourquoi il ne me retourne pas le libelle de ma dernière démarche qui va avec le MAX(id) et comment résoudre ce problème ?

Si vous avez une idée, merci d'avance !

A voir également:

1 réponse

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
5 janv. 2023 à 12:30

Bonjour,

Il te suffit de faire un ORDER BY id DESC  LIMIT 1

SELECT id, libelle_demarche, probleme_id 
FROM demarche 
WHERE probleme_id = 560
ORDER BY id DESC  LIMIT 1

0

C'est vrai ! super merci !

0