首页 >数据库 >mysql教程 >如何复制 MySQL 的'INTERSECT”功能?

如何复制 MySQL 的'INTERSECT”功能?

Linda Hamilton
Linda Hamilton原创
2024-12-22 12:58:36817浏览

How Can I Replicate MySQL's `INTERSECT` Functionality?

查找 MySQL 的 Intersect 的等价项

在 SQL 中,INTERSECT 运算符检索出现在两个指定查询中的不同值。然而,MySQL 本身并不支持 INTERSECT。

MySQL 中的替代方案

要在 MySQL 中获得类似的结果,可以使用:

  • INNER JOIN: 两个表之间的每列值匹配,但会出现重复项返回。
  • WHERE ... IN: 选择第一个表中也存在于第二个表中的不同值。

示例

考虑另一个使用以下方法的数据库管理系统中的以下查询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='恐慌') )

使用 INNER JOIN 的 MySQL 替代方案:

SELECT DISTINCT * 
FROM emovis_reporting e1
INNER JOIN emovis_reporting e2 
ON (e1.id = e2.id) AND (e1.cut_name = e2.cut_name)
WHERE e1.id = 3 AND (e1.cut_name = '全プロセス' OR e1.cut_name = '恐慌');

使用 WHERE ... IN 的 MySQL 替代方案:

SELECT DISTINCT * 
FROM emovis_reporting
WHERE (id = 3) AND (cut_name IN ('全プロセス', '恐慌'));

这些 MySQL 替代方案返回满足两者中指定的条件的不同值子查询。但是,需要注意的是,此特定查询中涉及 id 列,这将防止返回重复项。对于没有唯一标识符的查询,可能需要在外部查询中使用 DISTINCT 以确保结果唯一。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn