查询时间最小的记要

查询时间最小的记录
比如说,我SQL 这里有一张表

ID          date              code
123     2014.01.01         a 
123     2014.05.03         b
123     2015.08.23         c
258     2014.05.12         b
258     2013.08.25         c
258     2014.01.01         c

我要把同一个ID,date最小的那条记录提取出来, 
比如就是要  123       2014.01.01   a
                     258      2013.08.25   c

求教怎么弄啊。。。TAT....

------解决思路----------------------

select   distinct a.*  from tableName  a join
(select  id,min(date) as date  from tableName group by id) b
on a.id=b.id and a.date=b.date