logo图片
MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL MINUS

MINUS运算符是SQL中的一种SET操作,还包括INTERSECT,UNION和UNION ALL。 MINUS运算符从第一个表/集合返回唯一元素,而在第二个表/集合中找不到。换句话说,它将比较两个查询的结果,并从第一个查询获得的结果集中生成结果行,而在第二个查询获得的结果集中找不到该行。

语法

以下是说明使用MINUS运算符的语法:
SELECT column_lists FROM table_name WHERE (condition)
MINUS
SELECT column_lists FROM table_name WHERE (condition); 
注意: MySQL不为MINUS运算符提供支持。本文向您展示如何使用JOIN子句在MySQL中模拟MINUS查询。
以下是使用MINUS运算符的语句的规则:
所有SELECT语句中的列数和顺序必须相同。 两个SELECT语句中相应列的数据类型必须相同或可转换。
我们可以通过以下直观表示来理解MINUS运算符。在此,此运算符从 第一个 SELECT语句 获得的结果中返回唯一/唯一值,然后在 第二条SELECT语句获得的结果中找不到:
MySQL MINUS

MySQL MINUS运算符的模拟

由于 MySQL 不提供对MINUS的支持操作员。但是,我们可以使用 LEFT JOIN 子句来模拟此运算符。
我们可以使用以下语法模拟MINUS运算符:
SELECT column_list FROM table1
LEFT JOIN table2 ON condition
WHERE table2.column_name IS null;

示例

让我们首先创建两个具有以下结构的表进行演示:
表1的结构和数据:
mysql> CREATE TABLE tab1 (
    Id int PRIMARY KEY
);
mysql> INSERT INTO tab1 VALUES (1), (2), (3), (4);
表2的结构和数据:
mysql> CREATE TABLE tab2 (
    id int PRIMARY KEY
);
mysql> INSERT INTO tab2 VALUES (3), (4), (5), (6);
现在,我们将在LEFT JOIN子句的帮助下执行以下查询。其结果与MINUS运算符相同:
mysql> SELECT Id FROM tab1
LEFT JOIN tab2 USING (Id)
WHERE tab2.Id IS null;
输出:
执行上面的查询后,我们应该得到如下图所示的输出:
MySQL MINUS
昵称: 邮箱:
Copyright © 2020 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4