select a.* from [master] a,(select MasterId as Id,max(PubDate) as PubDate from detail group by MasterId ) as b
where a.id=b.id
order by b.PubDate desc

解决方案 »

  1.   

    select a.* from [master] a left join (select MasterId as Id,max(PubDate) as PubDate from detail group by MasterId ) as b
    on a.id=b.id
    order by isnull(b.PubDate,'1900-1-1') desc
      

  2.   

    TRY
    select a.* from master a left join (select masterid,max(pubdate) as pubdate from detail)b on a.id=b.masterid 
    order by b.pubdate desc
      

  3.   

    海兄想的真是全啊,把pubdate为空的情况都算进去了:)
      

  4.   

    我觉得不需要判断b.PubDate为空,数据库会自动把它排到末尾。select a.* from [master] a left join (select MasterId as Id,max(PubDate) as PubDate from detail group by MasterId ) as b
    on a.id=b.id
    order by b.PubDate desc