Oracle 左右連線總結

shilei1發表於2011-12-15
Oracle 左右連線總結
--建立測試資料
  create a(id number);
  create table b(id number);
  insert into a values(1);
  insert into a values(2);
  insert into a values(3);
  insert into b values(1);
  insert into b values(2);
  insert into b values(4);
  commit;
--左連線;
  --主流通用的方法
  select * from a left join b on a.id = b.id;
  --Oracle特有的方法
  select * from a, b where a.id = b.id(+)
--結果 
    ID ID
1 1 1
2 2 2
3 3  
--右連線:
  --主流資料通用的方法
  select * from a right join b on a.id = b.id;
  --Oracle特有的方法
  select * from a, b where a.id(+) = b.id
--結果
    ID ID
1 1 1
2 2 2
3  4
--內連線:
  --主流資料庫通用的方法
  select * from a join b on a.id=b.id
  --where關聯
  select * from a ,b where a.id=b.id
--結果
    ID ID
1 1 1
2 2 2

--全外連線:
  --主流資料庫通用的方法
  select * from a full join b on a.id =b.id
  --Oracle特有的方法
  select * from a,b where a.id =b.id(+)
  union
  select * from a,b where a.id(+) =b.id
--結果
    ID ID
1 1 1
2 2 2
3 3 
4  4
--完全連線,也叫交叉連線或者笛卡爾積
  --主流資料庫通用的方法
  select * from a,b;
  --或者
  select * from a cross join b;
--結果
    ID ID
1 1 1
2 1 2
3 1 4
4 2 1
5 2 2
6 2 4
7 3 1
8 3 2
9 3 4

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/196700/viewspace-713386/,如需轉載,請註明出處,否則將追究法律責任。

相關文章