MySQL的相交

INTERSECT运算符是SQL中的一种SET操作,包括UNION,UNION ALL,MINUS和INTERSECT。 INTERSECT运算符从两个或多个表中返回两组或公共记录中的不同(公共)元素。换句话说,它比较两个查询获得的结果并产生唯一的行,这是两个查询返回的结果。

句法

以下是说明INTERSECT运算符用法的语法:

注意:MySQL不提供对INTERSECT运算符的支持。本文向我们展示了如何使用JOIN和IN子句在MySQL中模拟INTERSECT查询。

以下是使用INTERSECT运算符的查询规则:

所有SELECT语句中的列数和顺序必须相同。

两个SELECT语句中相应列的数据类型必须相同或可转换。

我们可以通过以下视觉表示理解INTERSECT运算符。在这里,此运算符比较两个查询获得的结果,并且仅从两个查询中产生不同的行:

mysql交运算对应的sql_数据库

MySQL INTERSECT运算符的仿真

由于MySQL不提供对INTERSECT运算符的支持。但是,我们可以使用INNER JOIN和IN子句来模拟此运算符。

让我们首先创建两个具有以下结构的表,以了解INTERSECT运算符:

表1的结构和数据:

表2的结构和数据:

使用DISTINCT和INNER JOIN子句的INTERSECT运算符

以下语句使用DISTINCT运算符和INNER JOIN子句从两个表中返回不同的行:

例:

输出:

执行完上面的查询后,我们应该得到如下图所示的输出:

mysql交运算对应的sql_数据库_02

使用IN和子查询的INTERSECT运算符

以下语法使用IN和Subquery子句从两个表中返回不同的行:

例:

输出:

执行完上面的查询后,我们应该得到如下图所示的输出:

mysql交运算对应的sql_运算符_03

0

相关文章:Python MySQL-删除表 Python MySQL-删除表 您可& […]...

MySQL变量 MySQL变量 变量用于在程序执行期间存储数据或信息。这是一种使用适当名称标记数据的方法,有助于读者更清楚地了 […]...

MySQL COPY数据库 MySQL COPY数据库 数据库是用于存储可由用户访问和管理的记录的有组织的集合的应用程序。它将数据保存到表 […]...

如何在MySQL中创建索引 如何在MySQL中创建索引 索引是一种数据结构,它使我们可以在现有表中添加索引。它使您能够改进更快地检索数据库 […]...

MySQL HAVING子句 MySQL HAVING子句 MySQL HAVING子句与GROUP BY子句一起使用。它始终返回条件为TR […]...

MySQL内部连接 MySQL内部连接 MySQL内部联接用于仅从表中返回符合指定条件的结果,并隐藏其他行和列。 MySQL假定它 […]...

MySQL复合键 MySQL复合键 MySQL中的组合键是表中两列或多于两列的组合,使我们能够唯一地标识表的每一行。它是一种候选 […]...

MySQL DECIMAL MySQL十进制 此数据类型用于存储确切的数值。它类似于INT数据类型,用于保留精确度的列,例如工资,价格等会 […]...