SELECT A.ID,A.CONTENT,A.DATE,B.PERSON,B.REPLYCONTENT FROM A LEFT OUTER JOIN B 
ON A.ID = B.ID

解决方案 »

  1.   

    SELECT A.ID,A.CONTENT,A.DATE,B.PERSON,B.REPLYCONTENT FROM A,B where  a.id=b.id(+)
      

  2.   

    呵呵.用到了外联接.select * from a,b where a.id = b.id(+);
      

  3.   

    那如果表B中有重复的ID呢ID      PERSON       REPLYCONTENT
    ----------------------------------
    2       员工1        已订火车票
    4       员工1        合饭已订
    4       员工1        合饭已订十份
      

  4.   

    我只要关联表B中相同ID的一条记录,即生成日期较晚的一条
      

  5.   

    select a.ID,CONTENT,DATER,PERSON,REPLYCONTENT from 
       表A a,
       (select * from 表B where rowid in (select max(rowid) from 表B group by id) b
    where a.id=b.id(+);
      

  6.   

    select a.ID,CONTENT,DATER,PERSON,REPLYCONTENT from 
       表A a,
       (
          select * from 表B x,(select max(rowid) no from 表B group by id) y
           where x.rowid=y.no
        ) b
    where a.id=b.id(+);
      

  7.   

    to ORARichard(没钱的日子好难过啊) 
    rowid 最大并不代表日期最大,因为日期是可以改的.rowid 不会变.
      

  8.   

    Select aa.Id, Aa.CONTENT, aa.Date,bb.PERSON, bb.REPLYCONTENT
      From a Aa,
           b Bb,
           (Select a.Id, Max(Date) dd
              From  a,  b
             Where a.Id(+) = b.Id
             Group By a.Id) cc Where Aa.Id = Bb.Id
      And aa.Id=cc.Id
      And Aa.Date=cc.dd
      

  9.   

    SELECT A.ID,A.CONTENT,A.DATE,B.PERSON,B.REPLYCONTENT FROM A LEFT OUTER JOIN B 
    ON A.ID = B.ID
      

  10.   

    SELECT A.ID,A.CONTENT,A.DATE,B.PERSON,B.REPLYCONTENT FROM A,B where  a.id=b.id(+)
      

  11.   

    谢谢楼上各位的帮助,很有启发我在表B中有ID字段有可能重复,为此设上ID2字段,要查询出来的结果中要包括表B中ID2最大的记录(最小的也行)我重写一下问题
    ID      CONTENT      DATE
    ---------------------------
    1       没有事       12-01
    2       购火车票     12-01
    3       没有事       12-02
    4       订十份合饭   12-03
    ....
    ..表BID  ID2    PERSON       REPLYCONTENT
    ----------------------------------
    2   1    员工1        已订火车票
    4   1    员工1        合饭已订
    4   2    员工1        合饭已订十份如何查询得到
    ID      CONTENT      DATER      PERSON       REPLYCONTENT
    ---------------------------
    1       没有事       12-01
    2       购火车票     12-01      员工1        已订火车票
    3       没有事       12-02
    4       订十份合饭   12-03      员工1        合饭已订十份------------这里是表B中的ID2最大的一条记录
      

  12.   

    select a.ID,CONTENT,DATER,PERSON,REPLYCONTENT from 
       表A a,
       (
          select * from 表B x,(select max(id2) no from 表B group by id) y
           where x.id2=y.no
        ) b
    where a.id=b.id(+);
      

  13.   

    select a.ID,CONTENT,DATER,PERSON,REPLYCONTENT from 
       表A a,
       (
          select * from 表B x,(select max(id2) no from 表B group by id) y
           where x.id2=y.no and x.id=y.id
        ) b
    where a.id=b.id(+);
      

  14.   

    select a.ID,CONTENT,DATER,PERSON,REPLYCONTENT from 
       表A a,
       (
          select x.* from 表B x,(select max(id2) no from 表B group by id) y
           where x.id2=y.no and x.id=y.id
        ) b
    where a.id=b.id(+);
      

  15.   

    SQL> Insert Into a Values('1','没有事',to_date('2004-12-01','yyyy-mm-dd'));1 行 已插入SQL> Insert Into a Values('2','购火车票',to_date('2004-12-01','yyyy-mm-dd'));1 行 已插入SQL> Insert Into a Values('3','没有事',to_date('2004-12-02','yyyy-mm-dd'));1 行 已插入SQL> Insert Into a Values('4','订十份合饭',to_date('2004-12-03','yyyy-mm-dd'));1 行 已插入SQL> Create Table b(ID varhcar2(10),PERSON varchar2(20),REPLYCONTENT varchar2(20));Create Table b(ID varhcar2(10),PERSON varchar2(20),REPLYCONTENT varchar2(20))ORA-00907: 缺少右括号SQL> Create Table b(ID varchar2(10),PERSON varchar2(20),REPLYCONTENT varchar2(20));表被创建SQL> Insert Into b Values('2','员工1','已订火车票');1 行 已插入SQL> Insert Into b Values('4','员工1','合饭已订');1 行 已插入
    SQL> Select aa.Id, Aa.CONTENT, aa.ddate,bb.PERSON, bb.REPLYCONTENT
      2    From a Aa,
      3         b Bb,
      4         (Select a.Id, Max(ddate) dd
      5            From  a,  b
      6           Where a.Id(+) = b.Id
      7           Group By a.Id) cc
      8   Where Aa.Id = Bb.Id
      9    And aa.Id=cc.Id
     10    And Aa.ddate=cc.dd
     11  ;ID         CONTENT              DDATE       PERSON               REPLYCONTENT
    ---------- -------------------- ----------- -------------------- --------------------
    2          购火车票             2004-12-1   员工1                已订火车票
    4          订十份合饭           2004-12-3   员工1                合饭已订
    SQL>
      

  16.   

    少了几个右连接
    SQL> Select aa.Id, Aa.CONTENT, aa.ddate,bb.PERSON, bb.REPLYCONTENT
      2    From a Aa,
      3         b Bb,
      4         (Select a.Id, Max(ddate) dd
      5            From  a,  b
      6           Where a.Id = b.Id(+)
      7           Group By a.Id) cc
      8   Where Aa.Id = Bb.Id(+)
      9    And aa.Id=cc.Id(+)
     10    And Aa.ddate=cc.dd
     11  ;ID         CONTENT              DDATE       PERSON               REPLYCONTENT
    ---------- -------------------- ----------- -------------------- --------------------
    1          没有事               2004-12-1                        
    2          购火车票             2004-12-1   员工1                已订火车票
    3          没有事               2004-12-2                        
    4          订十份合饭           2004-12-3   员工1                合饭已订SQL>
      And Aa.ddate=cc.dd