MySQL 中替代 Intersect 的方法

65

我需要在MySQL中实现以下查询。

(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='恐慌') )

我知道MySQL中没有intersect操作符,因此我需要另一种方法。请指导我。


10
对于任何给定的行,cut_name 不能有两个不同的值,因此第一个 "select" 不会返回任何内容。 - Marcelo Cantos
11个回答

-2
据我所知,MySQL通过内连接INNER JOIN实现交集。

不,INNER JOIN 会产生笛卡尔积。这意味着会生成第一张表中的每一行与第二张表中的每一行的排列组合。但是,通过适当的 WHERE 子句,可以使用相同的逻辑来应用 INTERSECT,详见我的答案。 - RobM
但是你不能只使用带有USING子句的INNER JOIN,这样实际上就等同于INTERSECT了吗? - Shane N

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接