对于每个aId: x
找对应的b中记录:
SELECT bId
INTO y
FROM a
WHERE aId = x;
然后
SELECT *
FROM b
WHERE bId = y;
即可得到对应的b表中记录
找对应于x的最大的cId
SELECT max(cId)
FROM c
WHERE aId = x;

解决方案 »

  1.   

    SQL> select * from testa;       AID ANAME             BID
    ---------- ---------- ----------
            11 aa                  1
            12 aaa                 1
            13 aaaa                2
            14 aaaaa               2SQL> select * from testb;       BID BNAME
    ---------- ----------
             1 bb
             2 bbbSQL> select * from testc;       CID CNAME             AID
    ---------- ---------- ----------
           111 cc                 11
           112 ccc                11
           113 cccc               12SQL> select a.aID,a.aName,b.bId,b.bName,c.cId,c.cName from testa a,
      2  testb b,testc c
      3  where a.aId=11 and a.bID=b.bID and
      4  c.cid=(select max(cid) from testc where aid=11);       AID ANAME             BID BNAME             CID CNAME
    ---------- ---------- ---------- ---------- ---------- ----------
            11 aa                  1 bb                112 cccSQL>
      

  2.   

    试试:
    select x.*,y.max_cId
    from 
      (select aId,a.aName,a.bId from a,b
      where a.aId=b.aId) x,
      (select aId,max(cId) max_cId from c group aId) y
    where x.aId=y.aId(+)
      

  3.   

    waterfirer(水清):
       你好,谢谢你这么认真的对待这儿问题.虽然你的结果不是我所要的,但是我还是很感谢你的关心!万分感谢!因为a表中的aId我压根就不知道它是多少,所以我无法给这个语句里输入我的条件(aId),而且,我是需要所有只要关联的数据信息!谢谢你!licsth() :
       你好,谢谢你的关注!首先,我想纠正一下你的错误,在b表没有aId,所以"x"应该是"select aId,a.aName,a.bId from a,b where a.bId=b.bId".现在我执行了一下,结果大部分是我想要的,你不应该要后边的那个"(+)",如果c表里没有和a表相对应的记录,那么就不用显示了!所以我把你的语句改后的结果是:
    select  x.*,y.auditId from (select b.projectId,b.projectName,a.docId,a.docName 
    from t_doc a,t_project b where a.projectId=b.projectId) x,(select max(docAuditId) auditId,docId from t_docAudit group by docId) y where x.docId=y.docId;
    真的很感谢大家!
    昨天,我的一位美女妹妹(薄荷)最后给我想到了一条语句,我拿出来与大家共同分享,它是这样的:
    select a.docId,a.docName,b.projectId,b.projectName,c.docAuditId,c.auditor from
    t_doc a,t_project b,t_docAudit c,(select docId,max(docAuditId) as docAuditId from 
    t_docAudit group by docId) d where b.projectId=a.projectId and c.docId=a.docId and 
    c.docauditId=d.docauditId and c.docId=d.docId;
    在此,我感谢我可爱的薄荷,我简直是爱死你了!薄荷!
       同时,我也感谢所有给我帮助和回复的兄弟姐妹们!谢谢!(*^__^*)