📅  最后修改于: 2020-11-19 04:35:58             🧑  作者: Mango
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运算符的语句的规则:
我们可以通过以下视觉表示来理解MINUS运算符。在这里,此运算符从第一个SELECT语句获得的结果返回唯一/唯一值,而在第二个SELECT语句获得的结果中找不到:
由于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;
输出:
执行完上面的查询后,我们应该得到如下图所示的输出: