在SQL Server 2000下测试通过
select distinct(dd.id),max(dd.time) as time from (select distinct(id),max(time) as time from t1 group by id union select distinct(bb.id),max(bb.time) as time from t2 bb group by bb.id) dd group by dd.id order by dd.time desc

解决方案 »

  1.   

    select dd.id,max(dd.time) as time from (select id,max(time) as time from t1 group by id union select bb.id,max(bb.time) as time from t2 bb group by bb.id) dd group by dd.id order by dd.time desc 
      

  2.   

    我查了一下UNION要在MySQL 4.0.0. 上才能使用,但是4.0.0.不能使用子查询预计要在4.x中加入,只有这样了T1的ID字段不重复的话,你可以先得到T1表中有多少条记录,然后用limit来限止输出的记录数以达到你的目地。
    mysql> select id,max(time) as time from t1 group by id union
        ->  select bb.id,max(bb.time) as time from t2 bb group by bb.id order by
        -> time desc limit 0,4;
    +----+---------------------+
    | id | time                |
    +----+---------------------+
    | a  | 2001-12-19 05:25:25 |
    | c  | 2001-12-18 05:25:25 |
    | b  | 2001-12-17 05:25:25 |
    | d  | 2001-12-16 05:25:25 |
    +----+---------------------+
    4 rows in set (0.01 sec)