表一
订单号 支号 
1001    0
1001    1
1002    0
1002    1
1003    2表二
订单号 支号 分号 检收日
1001    0    0   20050203
1001    0    1   20050204
1001    0    2   20050206
1001    1
1002    0
1002    1
1003    2也就是说一个订单可能检收日有多个,我现在想要做的是在表二中找出‘订单号’和‘支号’相同的情况下分号最大的那个记录的检收日。并且我要用left join 连接两个表怎么办呢。select * from 表一 left join 表二 on 表一.订单号=表二.订单号 and 表一.支号=表二.支号接下来还要怎么写呢。谢谢大家。

解决方案 »

  1.   

    在这里的表二都已经体现了表一的所有内容,基本上不需要表一参与查询
    对于楼主所给出的数据,基本上可以写成
    select 
    订单号,支号,max(分号) as 分号,max(检收日) as 检收日
    from 表二
    group by 订单号,支号
      

  2.   

    select 
    订单号,支号,max(分号) as 分号,检收日
    from 表二
    group by 订单号,支号
      

  3.   

    谢谢unsigned,我没有把表的结构写全,连个表的字段是不一样的。
      

  4.   

    写出来了 你看看
      select  检收日 from 表二 where 分号=(select max(分号)as 分号 from 表二,表一 where 表一.订单号 =表二.订单号 and 表一.支号 =表二.支号  )
      

  5.   

    大家说得都对,可是都不是我想要的阿。
    我必须要用到left join ,能实现吗?
      

  6.   

    你看看这个行不行 
    select  检收日 from 表二 where 分号=(select max(分号)as 分号 from 表一 left join 表二 on 表一.订单号 =表二.订单号 and 表一.支号 =表二.支号)
      

  7.   

    试试这个
    select 
    订单号,支号,max(分号) as 分号,检收日 from 表一 left join 表二 on 表一.订单号=表二.订单号 and 表一.支号=表二.支号
     
    group by 订单号,支号,检收日