ORACLE 多表连接与子查询
连接的类型
Oracle8i之前的表连接:
等值连接(Equijoin)
非等值连接(Non-Equijoin)
外连接(Outer join):-->左外连接-->右外连接
自连接(Self join)
Oracle9之后新引入的连接形式(支持SQL99规范)
交叉连接(Cross join)
自然连接(Natural join)
使用Using子句建立连接
使用on子句建立连接
外连接(Outer join):-->左外连接-->右外连接-->全外连接
oracle中的连接可分为,
1. 内连接(自然连接)
2. 外连接
(1)左外连接 (左边的表不加限制)
(2)右外连接(右边的表不加限制)
(3)全外连接(左右两表都不加限制)
3. 自连接(同一张表内的连接)
4、交叉连接(cross join) (即 笛卡尔积)
5、其他连接定义(可能属于上面3种中的某一种)
(1)等值连接(equijoin)
(2)非等值连接(non-equijoin)
(3)on建立查询连接
(4)using 建立查询连接
SQL的标准语法:
多表连接使用SQL99连接语法,两个以上的表进行连接时应依次/分别指定相临的两个表之间的连接条件.
select 字段列表
from table1
[cross join table2] |
[natural join table2] |
[join table2 using(字段名)] |
[join table2 on(table.column_name=table2.column_name)] |
[(left | right | full out ) join table2
on(table1.column_name=table2.column_name)]
[cross join table3] |
[natural join table3] |
[join table3 using(字段名)] |