博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL中INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN区别
阅读量:5334 次
发布时间:2019-06-15

本文共 1400 字,大约阅读时间需要 4 分钟。

sql中的连接查询有inner join(内连接)、left join(左连接)、right join(右连接)、full join(全连接)四种方式,它们之间其实并没有太大区别,仅仅是查询出来的结果有所不同。 

例如我们有两张表: 
这里写图片描述

Orders表通过外键Id_P和Persons表进行关联。

1.inner join,在两张表进行连接查询时,只保留两张表中完全匹配的结果集。

我们使用inner join对两张表进行连接查询,sql如下:

1 SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo2 FROM Persons3 INNER JOIN Orders4 ON Persons.Id_P=Orders.Id_P5 ORDER BY Persons.LastName
查询结果集: 

这里写图片描述

此种连接方式Orders表中Id_P字段在Persons表中找不到匹配的,则不会列出来。

2.left join,在两张表进行连接查询时,会返回左表所有的行,即使在右表中没有匹配的记录。

我们使用left join对两张表进行连接查询,sql如下:

1 SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo2 FROM Persons3 LEFT JOIN Orders4 ON Persons.Id_P=Orders.Id_P5 ORDER BY Persons.LastName
查询结果如下: 

这里写图片描述 

可以看到,左表(Persons表)中LastName为Bush的行的Id_P字段在右表(Orders表)中没有匹配,但查询结果仍然保留该行。

3.right join,在两张表进行连接查询时,会返回右表所有的行,即使在左表中没有匹配的记录。

我们使用right join对两张表进行连接查询,sql如下:

1 SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo2 FROM Persons3 RIGHT JOIN Orders4 ON Persons.Id_P=Orders.Id_P5 ORDER BY Persons.LastName

 查询结果如下:

这里写图片描述 

Orders表中最后一条记录Id_P字段值为65,在左表中没有记录与之匹配,但依然保留。

4.full join,在两张表进行连接查询时,返回左表和右表中所有没有匹配的行。

我们使用full join对两张表进行连接查询,sql如下:

1 SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo2 FROM Persons3 FULL JOIN Orders4 ON Persons.Id_P=Orders.Id_P5 ORDER BY Persons.LastName

 

查询结果如下: 

这里写图片描述 
查询结果是left join和right join的并集。

这些连接查询的区别也仅此而已。

转载自:https://www.cnblogs.com/yanglang/p/8780722.html

转载于:https://www.cnblogs.com/lin346112883/p/9828799.html

你可能感兴趣的文章
JavaScript 语言基础知识点总结(思维导图)
查看>>
Git 配置editor编辑器
查看>>
基于Hadoop Sequencefile的小文件解决方案
查看>>
3D开发-AR.js 调试支持
查看>>
STL的二分查找binary_search
查看>>
【原】wow64 x86/x64 代码切换过程分析
查看>>
电机加减速转动
查看>>
IO多路复用
查看>>
利用盒模型来解决鼠标放在图片上显示边框的效果
查看>>
var s=+newDate();
查看>>
AFM论文精读
查看>>
P2731 骑马修栅栏 Riding the Fences
查看>>
msp430入门编程03
查看>>
mysql主从读写分离,分库分表
查看>>
python基本数据类型
查看>>
JAVA web 中文传参乱码解决方案:(最简洁方案)
查看>>
iOS 下载功能(断点续传)
查看>>
delphi中midas是什么
查看>>
AppSettings和ConnectionStrings的区别
查看>>
hdu1403 Longest Common Substring
查看>>