{MySQL} Double select

Fermé
zez13 - 6 déc. 2009 à 18:45
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 7 déc. 2009 à 12:21
Bonjour,
Alors voilà mon problème : j'ai une table qui s'appele fiche" avec cinq champs (y'en a plus mais c'est pour l'exemple)
id_fiche (clé primaire en autoincrementation)
id_chrono (c'est le n° de mes fiches, je l'incremente avec un ++$id_chrono)
id_rev ( pareil pour l'incrementation en php)
nom
telephone

Alors, à chaque fois que je modifie une fiche qui a un n° id_chrono, il se crée automatiquement un nouveau n° de révision (id_rev)
Donc une même fiche id_chrono peu avoir plusieurs revisions (id_rev)

ex:
id_chrono1
id_rev0 nom0 telephone0
id_rev1 nom0 telephone1
id_rev2 nom0 telephone2
id_chrono2
id_rev0 nom0 telephone0
id_rev1 nom0 telephone1
id_rev2 nom0 telephone2
id_rev3 nom0 telephone3
id_chrono3
id_rev0 nom0 telephone0

Donc, ma question est : comment afficher les identifiants chrono avec nom, telephone qui ont le plus grand n° id_rev ?

du genre:
id_chrono1 avec id_rev2 nom0 telephone2
id_chrono2 avec id_rev3 nom0 telephone3
id_chrono3 avec id_rev0 nom0 telephone0 ...

J'ai essayé plusieurs trucs mais sans succès, je devient juste un peu fou là :

"SELECT * FROM fiche WHERE id_rev =(SELECT MAX(id_rev) FROM fiche ) GROUP BY id_chrono";

le resultat est uniquement la colonne avec le plus gros id_rev ....

Merci d'avance
A voir également:

1 réponse

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
7 déc. 2009 à 12:21
Bonjour,

En MySQL, il me semble qu'on a le droit de faire quelque chose comme ça (à vérifier, je n'ai pas de serveur mysql sous la main...) :
SELECT MAX(id_rev), id_chrono, nom, telephone FROM fiche GROUP BY id_chrono

Xavier
0