在本教程中,我们将向您介绍SQL INTERSECT运算符,并展示如何模拟MySQL INTERSECT运算符(交集)。

1. SQL INTERSECT操作符简介

INTERSECT运算符是一个集合运算符,它只返回两个查询或更多查询的交集。

以下说明INTERSECT运算符的语法。

(SELECT column_list FROM table_1) INTERSECT (SELECT column_list FROM table_2);

INTERSECT运算符比较两个查询的结果,并返回由左和右查询输出的不同行记录。

要将INTERSECT运算符用于两个查询,应用以下规则:

列的顺序和数量必须相同。

相应列的数据类型必须兼容或可转换。

下图说明了INTERSECT运算符。

左侧查询产生一个结果集(1,2,3),右侧查询返回一个结果集(2,3,4)。

INTERSECT操作符返回包含(2,3),也就是两个结果集的相叉的行记录。与UNION运不同,INTERSECT运算符返回两个集合之间的交点。

请注意,SQL标准有三个集合运算符,包括,INTERSECT和。

2. MySQL INTERSECT模拟

不幸的是,MySQL不支持INTERSECT操作符。 但是我们可以模拟INTERSECT操作符。

我们为演示创建一些示例数据。

以下语句表t1和t2,然后将数据到两个表中。

USE testdb; DROP TABLE IF exists t1; DROP TABLE IF exists t2; CREATE TABLE t1 ( id INT PRIMARY KEY ); CREATE TABLE t2 LIKE t1; INSERT INTO t1(id) VALUES(1),(2),(3); INSERT INTO t2(id) VALUES(2),(3),(4);

以下从t1表查询返回行记录如下 –

mysql> SELECT id FROM t1; +----+ | id | +----+ | 1 | | 2 | | 3 | +----+ 3 rows in set

以下从t2表查询返回行记录如下 –

mysql> SELECT id FROM t2; +----+ | id | +----+ | 2 | | 3 | | 4 | +----+ 3 rows in set

使用DISTINCT运算符和INNER JOIN子句模拟MySQL INTERSECT运算符

以下语句使用运算符和子句来返回两个表中的相交集合:

SELECT DISTINCT id FROM t1 INNER JOIN t2 USING(id);

执行上面查询语句,得到以下结果 –

+----+ | id | +----+ | 2 | | 3 | +----+ 2 rows in set

上面语句是怎么工作的?

INNER JOIN子句从左表和右表返回所有符合条件的行记录。

DISTINCT运算符删除重复行。

使用IN运算符和子查询模拟MySQL INTERSECT运算符

以下语句使用和返回两个结果集的交集。

SELECT DISTINCT id FROM t1 WHERE id IN (SELECT id FROM t2);

执行以上查询语句,得到以下结果 –

+----+ | id | +----+ | 2 | | 3 | +----+ 2 rows in set

上面查询语句是如何工作的?

子查询返回第一个结果集。

外部查询使用IN运算符仅选择第一个结果集中的值。DISTINCT运算符确保只选择不同的值。

在本教程中,您已经学习了几种方法来模拟MySQL中的INTERSECT(交集)运算符。

¥ 我要打赏 纠错/补充 收藏

mysql交集_MySQL交集INTERSECT运算符相关推荐

  1. mysql交集_mysql交集INTERSECT运算符的具体应用方法

    集合论中,设A,B是两个集合,由所有属于集合A且属于集合B的元素所组成的集合,叫做集合A与集合B的交集(intersection),记作A∩B. INTERSECT运算符是一个集合运算符,它仅返回两个 ...

  2. 获取两个数据的交集_MySQL交集和差集的实现方法

    在MySQL中,只支持Union(并集)集合运算,而对于交集Intersect和差集Except并不支持.那么如何才能在MySQL中实现交集和差集呢? 一般在MySQL中,我们可以通过in和not i ...

  3. mysql 交集_MYSQL交集函数

    BEGIN DECLARE idx INT DEFAULT 0 ; -- B 集合单元索引 DECLARE len INT DEFAULT 0;-- B 集合表达式长度 DECLARE llen IN ...

  4. mysql相交_MySQL相交

    MySQL的相交 INTERSECT运算符是SQL中的一种SET操作,包括UNION,UNION ALL,MINUS和INTERSECT. INTERSECT运算符从两个或多个表中返回两组或公共记录中 ...

  5. mysql intersect 使用方法_MySQL INTERSECT运算符

    MySQL INTERSECT运算符 简介:在本教程中,我们将向您介绍SQL INTERSECT运算符,并向您展示如何模拟MySQL INTERSECT运算符. SQL INTERSECT 运算符简介 ...

  6. mysql数据库取交集_不同数据库取并集、交集、差集

    一.并集: 需求:汇总t1.t2两表的数据 mysql.postgresql.oracle数据库取并集都是用union/union all关键字,不再赘述 二.交集: 需求:选出既在t1表又在t2表的 ...

  7. mysql 除号_MySql的运算符-阿里云开发者社区

    数据库中的表结构确立后,表中的数据代表的意义就已经确定.而通过MySQL运算符进行运算,就可以获取到表结构以外的另一种数据.例如,学生表中存在一个birth字段,这个字段表示学生的出生年份.而运用My ...

  8. GBase8s数据库INTERSECT 运算符

    当通过此集合运算符组合两个查询时,INTERSECT 计算通过为其运算对象的两个查询返回的行的 交集. INTERSECT 返回的行展现在左边和右边的 SELECT 语句的结果集中.INTERSECT ...

  9. mysql用语_mysql基本sql语句大全(基础用语篇)

    1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份 ...

最新文章

  1. Xamarin XAML语言教程将XAML设计的UI显示到界面
  2. 第二章 spring
  3. 一年拿下软考中高级+PMP是一种怎样的体验?
  4. CSS的overflow属性:显示 隐藏 滚动显示 自动显示 继承
  5. 如何通过调试的方式搞清楚Angular createEmbeddedView具体创建的UI元素是什么
  6. Kubernetes中分布式存储Rook-Ceph的使用:一个ASP.NET Core MVC的案例
  7. Mobius 一个运行在 .NET Core 上的 .NET 运行时
  8. Mybatis笔记——Mybatis入门
  9. c#设计的简单登录界面
  10. swift扩展_Swift扩展
  11. kafka rabbitmq优劣对比_17个方面对比Kafka、RabbitMQ、RocketMQActiveMQ分布式消息队列
  12. 最全面计算机英语单词列表(二)
  13. java版我的世界MITE怎么下_MITE纯新手向教程 - [MITE]MC实在是太简单了 (Minecraft Is Too Easy) - MC百科|最大的Minecraft中文MOD百科...
  14. 云上PDF怎么删除页眉页脚_原来PDF编辑可以跟Word一样简单!去水印、加页眉页脚都不是问题...
  15. 以某SCI期刊为例说明该期刊投稿须知和流程
  16. itpt_TCPL 第二章:类型、运算符以及表达式
  17. python证书有什么用_用Python在获奖证书写上获奖者的名字
  18. excel计算式自动计算_计算macd 分解步骤一步一步详细计算macd 用excel计算macd
  19. AAAI 2020 | 清华大学牛人为BabelNet同义词集预测Sememe建立多语言知识库
  20. java jacob pdf_java-使用Jacob实现office转换成pdf

热门文章

  1. 第二次作业(红芯事件)
  2. 艾司博讯:拼多多价格区间过大怎么处理
  3. 利用爱奇艺开放平台实现视频托管回调播放(一)——获取授权
  4. 读书笔记-OpenCL编程指南 简介
  5. 高级软件工程——学习总结
  6. PDB python调试
  7. 搭建系统|别只盯MA、KDJ、MACD这些技术指标,择时策略也能叠加基本面指标!
  8. 哈尔滨理工大学软件与微电子学院程序设计竞赛(同步赛)A~Q
  9. UCSB与UCI计算机专业,美国UC加州大学十所分校对比分析之最强专业篇
  10. idea vue 热_vue如何实现热更新