sql语句关于外联内联的问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 15:02:45
谁能告诉我下
a.yhid=b.yhid(+)和b.yhid(+)=a.yhid有区别么?
(+)写在左右各表示什么啊?
反正只要是讲明白了(+)的用法就行了。

(+)就是外连结。
你说的 a.yhid=b.yhid(+)和b.yhid(+)=a.yhid,从结果上来说是没有区别的。

比如说有a,b两个表。
a表数据如下:
yhid name
1 aaaaaa
2 bbbbbb
3 cccccc

b表数据如下:
pid yhid pname
p1 1 devlopment
p2 4 sale

如果是左连结
select a.id,a.name.b.pname
from a,b
where a.yhid=b.yhid(+)

那么结果就是
yhid name pname
1 aaaaaa devlopment
2 bbbbbb null
3 cccccc null

如果是右连结
select a.id,a.name.b.pname
from a,b
where b.yhid=a.yhid(+)

那么结果就是
yhid name pname
1 aaaaaa devlopment
null null sale

顺便也说一下内连结吧。
select a.id,a.name.b.pname
from a,b
where a.yhid=b.yhid

那么结果就是
yhid name pname
1 aaaaaa devlopment

说明:(+)的意思就是外连接:放到左边就是右外连接,放到右边就是左连接

********************
举个例子有两