MySQL不支持INTERSECT和MINUS及其替代方法

 更新时间:2014年03月26日 17:14:14   作者:  
这篇文章主要介绍了MySQL不支持INTERSECT和MINUS情况下的替代方法,需要的朋友可以参考下
Doing INTERSECT and MINUS in MySQL

Doing an INTERSECT

An INTERSECT is simply an inner join where we compare the tuples of one table with those of the other, and select those that appear in both while weeding out duplicates. So

复制代码 代码如下:

SELECT member_id, name FROM a
INTERSECT
SELECT member_id, name FROM b


can simply be rewritten to

复制代码 代码如下:

SELECT a.member_id, a.name
FROM a INNER JOIN b
USING (member_id, name)


Performing a MINUS
To transform the statement

复制代码 代码如下:

SELECT member_id, name FROM a
MINUS
SELECT member_id, name FROM b


into something that MySQL can process, we can utilize subqueries (available from MySQL 4.1 onward). The easy-to-understand transformation is:

复制代码 代码如下:

SELECT DISTINCT member_id, name
FROM a
WHERE (member_id, name) NOT IN
(SELECT member_id, name FROM table2);


Of course, to any long-time MySQL user, this is immediately obvious as the classical use-left-join-to-find-what-isn't-in-the-other-table:

复制代码 代码如下:

SELECT DISTINCT a.member_id, a.name
FROM a LEFT JOIN b USING (member_id, name)
WHERE b.member_id IS NULL

相关文章

  • 详解mysql索引总结----mysql索引类型以及创建

    详解mysql索引总结----mysql索引类型以及创建

    索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。这篇文章主要介绍了详解mysql索引总结----mysql索引类型以及创建,有兴趣的可以了解一下。
    2016-11-11
  • mysql数据库连接失败常见问题小结

    mysql数据库连接失败常见问题小结

    你有没有碰到过mysql数据库连接不上的问题呢?很多的小伙伴表示,经常会时不时的出现这些问题,下面这篇文章主要给大家介绍了关于mysql数据库连接失败常见问题的相关资料,需要的朋友可以参考下
    2023-06-06
  • MySQL 数据库聚合查询和联合查询操作

    MySQL 数据库聚合查询和联合查询操作

    这篇文章主要介绍了MySQL 数据库聚合查询和联合查询操作,需要的朋友可以参考下
    2021-12-12
  • mybatis统计每条SQL的执行时间的方法示例

    mybatis统计每条SQL的执行时间的方法示例

    这篇文章主要介绍了mybatis统计每条SQL的执行时间的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • mysql错误处理之ERROR 1786 (HY000)

    mysql错误处理之ERROR 1786 (HY000)

    最近一直在mysql的各个版本直接徘徊,这中间遇到了各种各样的错误,将已经处理完毕的几个错误整理了一下,分享给大家,首先我们来看看错误提示 ERROR 1786 (HY000)
    2014-07-07
  • MySQL使用索引优化性能

    MySQL使用索引优化性能

    这篇文章介绍了MySQL使用索引优化性能的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • MySQL实现查询分位值的示例代码

    MySQL实现查询分位值的示例代码

    本文主要介绍了MySQL实现查询分位值的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • MySQL按年/月/周/日/小时分组查询、排序、limit及判空用法实例

    MySQL按年/月/周/日/小时分组查询、排序、limit及判空用法实例

    我们在用Mysql抽取数据时候,经常需要按照天、周、月等不同的粒度对数据进行分组统计,下面这篇文章主要给大家介绍了关于MySQL按年/月/周/日/小时分组查询、排序、limit及判空用法的相关资料,需要的朋友可以参考下
    2023-03-03
  • MySQL命令行导出与导入数据库

    MySQL命令行导出与导入数据库

    这篇文章主要为大家详细介绍了利用命令行MySQL导出数据库与导入数据库的例子,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Mysql之如何实现全外连接

    Mysql之如何实现全外连接

    这篇文章主要介绍了Mysql之如何实现全外连接问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论