在oracle查询中,分别有表a和表b,a和b的关系是一对多,b的ForeignKey是a的id字段,
现在我想让表a左连接表b,但是只查询出b中最新的那条记录,应该怎样实现?下面是我写的连接查询的sql
SELECT * FROM table_A a, table_B b WHERE a.id=b.id(+) ORDER BY b.date desc
假设有下面的表
table_A
id     
------------
001
002
003
table_B
id     date
------------
001    2008-01-01
001    2010-01-01
002    2009-05-05想得到这样的查询结果result
id    date
------------
001    2010-01-01
002    2009-05-05
003
谢谢关注!

解决方案 »

  1.   

    SELECT a.id,max(b.date) FROM table_A a, table_B b WHERE a.id=b.id(+) group by a.id
    ORDER BY b.date desc
      

  2.   

    SELECT a.id,max(b.date) date FROM table_A a, table_B b WHERE a.id=b.id(+) group by a.id
    ORDER BY date desc
      

  3.   


    SELECT a.id ,max(b.date)  FROM table_A a left join table_B b 
    on a.id=b.id
    group by a.id
      

  4.   

    很好,一针见血
    我用了RANK()OVER