sql查询语句 where 后面的条件 A表的一个字段=B表的一个字段(+) 后面这个(+)代表什么意思

2024-11-15 17:45:13
推荐回答(3个)
回答1:

简单给你说明一下:
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, 赵五

回答2:

(+)在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

回答3:

这个特定在oracle的情况下才用,是表示外连接,举个例子吧:
显示雇员的姓名、工资和所在部门名称及不属于任何部门的雇员
select ename 姓名,sal 工资,dname 部门名称 from emp,dept
where emp.deptno=dept.deptno(+)。
下面的就不说了吧 具体就是 join on