A表
id name
1 名字一
2 名字二B表
id a_id date
1 1 2007-01-01
2 1 2007-02-02
3 2 2007-03-03
4 2 2007-04-04select a.id,b.date from a left join b on a.id=b.a_id
这样可以取出:
1 2007-01-01
1 2007-02-02
2 2007-03-03
2 2007-04-04那么我如何将其中B表中ID较小的那条去掉呢?只留下:
1 2007-02-02
2 2007-04-04
谢谢。

解决方案 »

  1.   

    select a_id,max(date) from tt group by a_id
      

  2.   

    谢谢wwwwb的回复。可能我开始表达的不是很清楚
    B表中date项没有规律,可能ID大的date反而小,所以date不能用作条件,只能用ID来作条件比较。
      

  3.   

    不是改一下就行了?
    select   a_id,max(ID)   from   tt   group   by   a_id
      

  4.   

    也感谢XFliangwh 的回复。
    我需要取出的是A表的ID和B表中ID较大的DATE两个字段,其它字段不要。两表之间以A表的ID和B表的a_id关联,该怎样做呢?
      

  5.   

    select a.* from 
    (select a_id,max(id) as ma from tt group by a_id) a
    inner join tt b
    on a.a_id=b.a_id and a.id=b.ma
      

  6.   

    这个问题被问过好多次了。类似的看已经结过的帖子。或者看我BLOG上也有类似例子。