如何從兩個不同資料庫得到如下表的結果???DB1:                    DB2:
username : a            username: b
pass: aa                 pass:bb
               
T1:                    T2:
id  name   count         name    dep
------------------    -----------------
1    b      1              a      cbk
2    a      1              b      cbk
3    a      2              c      dds
4    c      3              d      cbk
5    b      3              e      ddd
name   sum(count)    dep
-----------------------------
a      3             cbk
b      4             cbk
c      3             dds

解决方案 »

  1.   

    如果不是在这两个用户下,可以首先建立两个数据库链再做联接
     create database link link1 connect to a identified by aa using 'SID1';
     create database link link2 connect to b identified by bb using 'SID2';select a.name,
           a.num,
           b.dep
      from
        (
         select T1.name,
                sum(T1.count) num
           from T1@link1
           group by T1.name
        ) a,T2@link2 b 
     where a.name = b.name
         
    如果是在这两个用户任意一个下面,则只需要创建一个数据库链
    假如在a用户下
     create database link link2 connect to b identified by bb using 'SID2';
     select a.name,
            a.num,
            b.dep
      from
        (
         select T1.name,
                sum(T1.count) num
           from T1
           group by T1.name
        ) a,T2@link2 b 
     where a.name = b.name
      
    假如在b用户下
      create database link link1 connect to a identified by aa using 'SID1';
      select a.name,
           a.num,
           b.dep
      from
        (
         select T1.name,
                sum(T1.count) num
           from T1@link1
           group by T1.name
        ) a,T2 b 
     where a.name = b.name
    试试~~~~~~~~~~~~
     
      

  2.   

    請問database link是不是只做一次就可以了,
    日後的查詢好像都不需要在做了,是嗎