oracle Join操作语法错误和Join语句的嵌套
			
					(2010-08-12 14:51:09)		
		
						
		
			Join操作语法错误和Join语句的嵌套--oracle数据库
 
oracle自9i之后开始支持 Join
操作,而且支持嵌套,但必须使用括弧,否则会报 from 子句错误。 
若要创建一个只包括在被联接字段中具有相同数据的记录,使用 INNER JOIN 操作。 
一、LEFT JOIN 或 RIGHT JOIN 可以嵌套到 INNER JOIN 语句中, 
        
INNER JOIN 语句不能嵌套到 LEFT JOIN 或 RIGHT JOIN 语句中。 
 
二、[/b]对 Join 后的数据集[/b]不能赋别名,赋别名后提示 Join 操作语法错误。 
三、LEFT JOIN 或 LEFT OUTER JOIN。 
       
左向外联接的结果集包括 LEFT OUTER
子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。 
       
一般情况下可以等同看待。
  
建表a 
create table a as select rownum as id,rownum as name from dual
connect by level < 10; 
建表b 
create table b as select rownum+5 as id,rownum+5 as name from dual
connect by level < 10;
  
SQL> select * from
a; 
       
ID      
NAME 
---------- ---------- 
        
1         
1 
        
2         
2 
        
3         
3 
        
4         
4 
        
5         
5 
        
6         
6 
        
7         
7 
        
8         
8 
        
9         
9 
SQL> select * from
b; 
       
ID      
NAME 
---------- ---------- 
        
6         
6 
        
7         
7 
        
8         
8 
        
9         
9 
       
10        
10 
       
11        
11 
       
12        
12 
       
13        
13 
       
14        
14
  
两个表a,b相连接,要取出id相同的字段,如下: 
  
1、左连接 
SQL> select * from a
left join b on a.id=b.id order by a.id; 
       
ID      
NAME        
ID      
NAME 
---------- ---------- ---------- ---------- 
        
1         
1 
        
2         
2 
        
3         
3 
        
4         
4 
        
5         
5 
        
6         
6         
6         
6 
        
7         
7         
7         
7 
        
8         
8         
8         
8 
        
9         
9           |