Oracle 中内连接和完全外连接的区别有哪些?

Oracle 中内连接和完全外连接的区别有哪些?,第1张

INNER

JOIN(内连接):SELECT

*

FROM

TABLE1

T1

INNER

JOIN

TABLE2

T2

ON

T1.ID

=

T2.ID

查询时只有满足了ID的值在俩个表同时存在,才能将此记录查询出来。

FULL

OUTER

JOIN(完全外连接):SELECT

*

FROM

TABLE1

T1

FULL

OUTER

JOIN

TABLE2

T2

ON

T1.ID

=

T2.ID

查询时TABLE1

TABLE2满足内连接的记录会统一成一条记录查询出来。

TABLE1中能找到ID值而在TABLE2中找不到对应的值,此时TABLE1中此记录的值不变,其他TABLE2字段的值补NULL,合并成一条记录查询出来。

反之,TABLE2中能找到ID值而在TABLE1中找不到对应的值,此时TABLE2中此记录的值不变,其他TABLE1字段的值补NULL,合并成一条记录查询出来。

举例回答:

表stu

id name

1, Jack

2, Tom

3, Kity

4, nono

表exam

id grade

1, 56

2, 76

11, 89

内连接(显示两表匹配的id)

select stu.id, exam.id, stu.name, exam.grade from stu inner join exam on stu.id = exam.id

1 1 Jack 56

2 2 Tom 76

左连接(显示join左边表的所有数据)

select stu.id, exam.id, stu.name, exam.grade from stu left join exam on stu.id = exam.id

1 1 Jack 56

2 2 Tom 76

3 NULL Kity NULL

4 NULL nono NULL

右连接(显示join右边表的所有数据)

select stu.id, exam.id, stu.name, exam.grade from stu right join exam on stu.id = exam.id

1 1 Jack 56

2 2 Tom 76

NULL 11 NULL 89

总结:

内连接取交集

外连接(左连接,右连接)

左连接左边的全取

右连接右边的全取

INNER

JOIN(内连接):SELECT

*

FROM

TABLE1

T1

INNER

JOIN

TABLE2

T2

ON

T1.ID

=

T2.ID

查询时只有满足了ID的值在俩个表同时存在,才能将此记录查询出来。

FULL

OUTER

JOIN(完全外连接):SELECT

*

FROM

TABLE1

T1

FULL

OUTER

JOIN

TABLE2

T2

ON

T1.ID

=

T2.ID

查询时TABLE1

TABLE2满足内连接的记录会统一成一条记录查询出来。

TABLE1中能找到ID值而在TABLE2中找不到对应的值,此时TABLE1中此记录的值不变,其他TABLE2字段的值补NULL,合并成一条记录查询出来。

反之,TABLE2中能找到ID值而在TABLE1中找不到对应的值,此时TABLE2中此记录的值不变,其他TABLE1字段的值补NULL,合并成一条记录查询出来。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9461148.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存