Bonjour,

J'ai une table de ce format là:

id_log | date | time | id_dp| id_user| id_etat
----------------------------------------------------------
1 | 2009-11-01 | 14:25:45 | 1 | 45 | 1
2 | 2009-11-02 | 14:25:45 | 2 | 45 | 5
3 | 2009-11-01 | 14:25:45 | 2 | 12 | 7
4 | 2009-11-15 | 17:12:17 | 1 | 25 | 8
5 | 2009-11-01 | 14:25:45 | 2 | 45 | 2
6 | 2009-11-15 | 16:32:52 | 1 | 17 | 6
7 | 2009-11-02 | 13:17:28 | 2 | 45 | 5

J'aimerais retourner la dernière entrée en date (et heure) pour chaque id_dp, ce qui devrait donner dans cet exemple :

4 | 2009-11-15 | 17:12:17 | 1 | 25 | 8
2 | 2009-11-02 | 14:25:45 | 2 | 45 | 5

J'ai essayé pas mal de méthodes et ce qui me semblait le plus proche était çà:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
SELECT *
FROM 	(
		SELECT *
		FROM `gdp_dp_log`
		WHERE (`gdp_dp_log`.`date` = (select max(`c`.`date`) AS `MAX(date)` from `gdp_dp_log` `C` where (`c`.`id_dp` = `gdp_dp_log`.`id_dp`))) 
		ORDER BY  `gdp_dp_log`.`id_dp`
		)D
 
WHERE (`D`.`heure` = (select max(`D`.`heure`) AS `MAX(heure)` from `D` where (`d`.`id_dp` = `D`.`id_dp`))) 
ORDER BY  `D`.`id_dp`
Le problème est que l'alias de table (D) n'est pas reconnu dans la sous-requête.

Si quelqu'un a une solution à me proposer, je suis preneur.

Merci d'avance

MySQL 5.0.51b