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 |