EXCEPT 返回两个结果集的差


INTERSECT 返回两个结果集的交集


举例说明:

mysql> CREATE TABLE t1 (id INT);
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE t2 (id INT);
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6);
Query OK, 6 rows affected (0.00 sec)
Records: 6  Duplicates: 0  Warnings: 0

mysql> INSERT INTO t2 VALUES (1),(2),(3);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from t1 EXCEPT select * from t2;
+------+
| i    |
+------+
|    4 |
|    5 |
|    6 |
+------+
3 rows in set (0.00 sec)


mysql> select * from t1  INTERSECT select * from t2 ;
+------+
| i    |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.00 sec)


注:MySQL 8.0不支持该语法。