SQL全外连接查询:两表数据匹配与差异分析及自连接应用

创始人
2025-01-01 17:35:27
0 次浏览
0 评论

sql查询两个表相同的数据

SQL语句如下:

SELECT*fromTABLE1fulljoinTABLE2onTABLE1.xingming=TABLE2.xingmingwhereTABLE1.xingmingisnullorTABLE2.xingmingisnull

分析:

1.首先得到两个表的并集

注意:FULLJOIN:一是匹配,匹配性能;二是匹配。
同时将各表中不匹配的数据与空数据行进行匹配显示。
可以看作是左外连接和右外连接的并集。

图中结果左边两列是Table1,右边两列是Table2。
前三条记录代表表1和表2中的数据。

表1中的条目为零的记录表明表2中没有类似的条目。
同样,表2中具有NULL条目的记录表明表1中没有类似的条目。

接下来,您只需设置过滤条件即可过滤出所需的记录。

2.设置过滤条件并得到结果

从结果中可以看出,表1中的赵二并没有表2中相同的景明记录。

表2中的刘刘没有与表1中相同的性命记录。

这个问题还有很多其他的解决方案,这里列出一个容易理解的解决方案。

扩展信息:

使用自连接

即使表在数据库中没有自反关系,它也可以连接到自身。
例如,您可以使用自连接来查找居住在同一城市的作者对。

与任何联接一样,自联接至少需要两个表。
不同之处在于,您不是向查询添加第二个表,而是添加同一表的另一个实例。
是。
这允许您将表的第一个示例中的列与第二个示例中的同一列进行比较,从而将列中的值相互比较。
查询和视图设计者为表的另一个实例指定别名。

例如,如果您想创建一个自联接来查找居住在伯克利的所有作者对,您可以将表的第一个示例中的城市列与第二个示例中的城市列进行比较可以举例。
结果查询可能如下所示:

SELECTauthors.au_fname,authors.au_lname,authors1.au_fnameASExpr2,authors1.au_lnameASExpr3

ORSINNERJOINauthorsFROMarticlesauthors1ONauthors.city=authors1。

WHEREAuthors.city='Berkeley'

参考资料:

百度百科全书.fulljoin

sql中如何查询表中一行数据中的两列数据与另一行相同列数据的数据相反?

对于自动连接表尤其如此。
你想要
热门文章
1
Python代码实现:如何判断三角形的三... python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...

2
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

3
SQL字段默认值设置全攻略:轻松实现自动... sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...

4
MySQL查询加速秘籍:PolarDB ... mysql中in大量数据导致查询速度慢怎么优化?在MySQL中处理大量数据时,查...

5
SQL2000数据库备份压缩技巧:优化空... 怎么将SQL2000中的较大的备份数据库压缩变小更改数据库属性-选项-恢复模型很...

6
SQL字符串处理技巧:单引号使用与转义标... SQL语句中,字符串类型的值均使用什么符号标明?单引号如果字符串内有单引号,请小...

7
Windows环境下Redis安装指南与... redis安装windowsredis基本简介与安装安装Redis首先需要获取安...

8
深度解析:Redis性能优势与局限性,助... redis有哪些优缺点?Redis的全称是RemoteDictionary.Se...

9
深入解析:MySQL数据库的特性与应用 mysql是什么MySQL是一个关系数据库管理系统。MySQL是一个开源关系数据...

10
Linux Redis操作指南:安装、配... Linux系统进入redis并查询值1.进入redisredis-cli2.获取...