现有表
表A:
--------------------------------------
ID    A        B          C
1     101      8          8
2     102      9          9
--------------------------------------
表B
--------------------------------------
ID    A        DATE               B
1    101      2011-8-22 16:00    5
2    101      2011-8-22 13:00    6
3    101      2011-8-22 12:00    7
--------------------------------------
现在我想要得到-------------------------------------
ID   表A.A  表A.B   表A.C    表B.B
1    101     8       8        5
2    101     9       9       NULL
-------------------------------------我用这不行select a.a,a.b,a.c,b.b from 表A AS A LEFT JOIN 表B AS B ON a.a=b.a order by b.date limit 1

解决方案 »

  1.   

    现有表
    表A:
    --------------------------------------
    ID A B C
    1 101 8 8
    2 102 9 9
    --------------------------------------
    表B
    --------------------------------------
    ID A DATE B
    1 101 2011-8-22 16:00 5
    2 101 2011-8-22 13:00 6
    3 101 2011-8-22 12:00 7
    --------------------------------------
    现在我想要得到-------------------------------------
    ID 表A.A 表A.B 表A.C 表B.B
    1 101 8 8 5
    2 102 9 9 NULL
    -------------------------------------我用这不行select a.a,a.b,a.c,b.b from 表A AS A LEFT JOIN 表B AS B ON a.a=b.a order by b.date limit 1
      

  2.   

    现在我想要得到-------------------------------------
    ID 表A.A 表A.B 表A.C 表B.B
    1 101 8 8 5
    2 102 9 9 NULL
    -------------------------------------
      

  3.   

    本帖最后由 xuzuning 于 2011-08-22 15:22:37 编辑
      

  4.   

    我刚才打错了,搞了两个101。
    因为2 102 那个在表B里没有。所以NULL,我未做处理。
      

  5.   

    你的语句貌似没啥问题啊,除了那个limit 1。
      

  6.   

    语句是没有问题的,但是我想只连接表B的最后一个时间的(表B。B)值
      

  7.   

    呵呵,我想到啦,谢谢各位大侠帮忙。
    SELECT a.a,a.b,a.c,IFNULL(b.b,0)as 表B from 表A as a left join (select * from 表B order by date DESC limit 1)as b on b.A=a.A