您的位置:首页 > 数据库 > Oracle

oracle中join的用法

2008-10-03 21:59 134 查看
oracle中join的用法

8i:  
   
  create   table   dali.test1(a   int,b   int);  
  create   table   dali.test2(a   int,b   int);  
   
  insert   into   dali.test1   values(1,456);  
  insert   into   dali.test1   values(2,427);  
  insert   into   dali.test2   values(1,45456);  
  insert   into   dali.test2   values(3,45656);  
   
  ---内连接  
  select   *   from   dali.test1   a,   dali.test2   b   where   a.a=b.a;  
   
  ---左连接  
  select   *   from   dali.test1   a,   dali.test2   b   where   a.a=b.a(+);  
   
  ---右连接  
  select   *   from   dali.test1   a,   dali.test2   b   where   a.a(+)=b.a;  
   
  ---完全连接  
  select   *   from   dali.test1   a,   dali.test2   b   where   a.a=b.a(+)  
  union  
  select   *   from   dali.test1   a,   dali.test2   b   where   a.a(+)=b.a;  
   
  ---迪卡尔  
  select   *   from   dali.test1,   dali.test2;
'==================================================================
9i和sqlserver一样   left   join,right   join,full   join

内连接结果:
    A   B    A  B
1  1  456  1  45456
'----------------------------
左连接结果:
    A    B    A    B
1  1    456  1  45456
2  2    427
'====================
右连接结果:
    A    B    A    B
1  1   456   1    45456
2               3    45656
'=============================
完全连接结果:
    A    B      A    B
1   1   456     1   45456
2   2   427
3               3   45656
'========================
笛卡尔结果:
    A    B    A    B
1  1   456   1   45456
2  2   427   1   45456
3  1   456   3   45656
4  2   427   3   45656
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息