简单给你说明一下:
A表:ID,NAME
B表:ID,NAME
select * from a
id,name
1,张三
2,李四
select * from b
id,name
1,张三
2,李四
3, 赵五
select a.*,b.* from a,b where a.id=b.id(+)
id,name id,name
1,张三 1,张三
2,李四 2,李四
select a.*,b.* from a,b where a.id(+)=b.id
id,name id,name
1,张三 1,张三
2,李四 2,李四
null,null 3, 赵五
(+)在oracle中表示外连接
如
select a.*,b.* from a,b where a.id=b.id(+)
是左连接,
也可以写成
select a.*,b.* from a left join b on a.id=b.id
后面一种写法是sql标准,在access、sqlserver、oracle都能用
如select a.*,b.* from a,b where a.id(+)=b.id是右连接
也可以写成
select a.*,b.* from a right join b on a.id=b.id
这个特定在oracle的情况下才用,是表示外连接,举个例子吧:
显示雇员的姓名、工资和所在部门名称及不属于任何部门的雇员
select ename 姓名,sal 工资,dname 部门名称 from emp,dept
where emp.deptno=dept.deptno(+)。
下面的就不说了吧 具体就是 join on