首页 > 数据库 > mysql教程 > 如何复制 MySQL 的 INTERSECT 运算符功能?

如何复制 MySQL 的 INTERSECT 运算符功能?

DDD
发布: 2024-12-25 09:07:32
原创
770 人浏览过

How to Replicate MySQL's INTERSECT Operator Functionality?

相当于 MySQL 的 INTERSECT 运算符

SQL INTERSECT 运算符用于识别并返回查询两个部分中出现的匹配值。但是,MySQL 本身不支持此运算符。

替代方法

要在 MySQL 中实现 INTERSECT 运算符的功能,可以采用几种替代方法:

  • 内连接使用DISTINCT:
SELECT DISTINCT table_a.column
FROM table_a
INNER JOIN table_b ON table_a.column = table_b.column;
登录后复制
  • 其中 ... 和 DISTINCT:
SELECT DISTINCT table_a.column
FROM table_a
WHERE table_a.column IN (SELECT table_b.column FROM table_b);
登录后复制

示例

考虑使用 INTERSECT 运算符的以下查询:

(select * from emovis_reporting where (id=3 and cut_name= '全プロセス' and cut_name='恐慌') ) 
intersect
( select * from emovis_reporting where (id=3) and ( cut_name='全プロセス' or cut_name='恐慌') )
登录后复制

此查询从“emovis_reporting”表中检索 id 为 3、cut_name 为“全プロセsu”和“恐慌”的记录。

MySQL等效

使用 INNER JOIN 方法在 MySQL 中实现此查询:

SELECT DISTINCT *
FROM emovis_reporting AS a
INNER JOIN emovis_reporting AS b ON a.id = b.id
WHERE a.id = 3
  AND a.cut_name = '全プロセス'
  AND b.cut_name = '恐慌';
登录后复制

使用 WHERE ... IN 和 DISTINCT 方法:

SELECT DISTINCT *
FROM emovis_reporting
WHERE id = 3
  AND cut_name = '全プロセス'
  AND cut_name IN (SELECT cut_name FROM emovis_reporting WHERE cut_name = '恐慌');
登录后复制

以上是如何复制 MySQL 的 INTERSECT 运算符功能?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板