数据库的内连接和外连接有什么区别?

数据库的内连接和外连接有什么区别?,第1张

1、连接结果不同

内连接的连接结果仅包含符合连接条件的行,参与连接的两个表都必须符合连接条件;而外连接的连接结果不仅包含了符合连接条件的行,同时还包括不符合自身条件的行,其中还包括左外连接、右外连接以及全外连接。

2、注意事项不同

内连接需要注意区分在嵌套查询时使用的any以及all的区别;外连接不需要区分,左表和右表都不受限制,所有记录都显示,两个表不足的地方可用null进行填充。

以下介绍mysql内连接和外连接的区别:

--表tab1

id name

1, Jack

2, Tom

3, Kity

--表tab2

id grade

1, 56

2, 76

11, 89

内连接:进行连接的两个表对应的相匹配的字段完全相同的连接。

select t1.*,t2.id as t2id,t2.grade from tab1 t1 inner join tab2 t2 on t1.id=t2.id

结果:

id name t2id grade

1 Jack1 56

2 Tom2 76

外连接又分为左外连接和右外连接。

左连接即LEFT OUTER JOIN:

两个表进行左连接时会返回左边表中的所有的行和右边表中与之相匹配的列值没有相匹配的用空值代替。

select t1.*,t2.id as t2id,t2.grade from tab1 t1 left outer join tab2 t2 on t1.id=t2.id

结果:

id name t2id grade

1 Jack1 56

2 Tom2 76

3 Kitynull null

右连接即RIGHT OUTER JOIN:

两个表进行右连接时会返回右边表中的所有的行和左边表中与之相匹配的列值没有相匹配的用空值代替。

select t1.*,t2.id as t2id,t2.grade from tab1 t1 right outer join tab2 t2 on t1.id=t2.id

结果:

id name t2id grade

1Jack1 56

2Tom2 76

null null 11 89

以上通过一个例子描述内连接和外连接的区别。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存