Ciao a tutti. Lo so che l'argomento è stato trattato diverse volte però io ho un "piccolo" problema.

Tabella maggiori
codice:
id_prog id  datas
1	1   2006-01-01
3	1   2005-10-10
5	1   2005-12-12
2	2   2006-02-03
4	2   2006-01-01
6	2   2006-10-10
Questa la query che eseguo

SELECT *
FROM
(select max(datas) as datas from maggiori
group by id) as tab1
left join maggiori as tab2 ON tab1.datas = tab2.datas

La data maggiore per id 1 è 2006-01-01
La data maggiore per id 2 è 2006-10-10

Al che mi aspetterei di avere come risultato della query i record con id _prog 1 e 6.
Invece ottengo 3 record, i due precedenti più quello con id_prog 4 appartenente al gruppo (id) 2 perchè la data 2006-01-01, pur non essendo la maggiore del gruppo 2, coincide con la maggiore dell'altro gruppo.
Ovviamente se modifico la data a 2006-01-02 ad esempio, allora il risultato della query è giusto. Come risolvo?


Questo è il dump nel caso qualcuno avesse la pazienza di provarlo.
CREATE TABLE `maggiori` (
`id_prog` tinyint(4) NOT NULL auto_increment,
`id` tinyint(4) default NULL,
`datas` date default NULL,
PRIMARY KEY (`id_prog`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*Data for the table `maggiori` */

insert into `maggiori` (`id_prog`,`id`,`datas`)
values
(1,1,'2006-01-01'),
(2,2,'2006-02-03'),
(3,1,'2005-10-10'),
(4,2,'2006-01-01'),
(5,1,'2005-12-12'),
(6,2,'2006-10-10');

Grazie.