我能够运行以下内容:
SELECT * FROM t1 WHERE t1.id NOT IN (SELECT id FROM t2);
以及:
SELECT * FROM (SELECT id FROM t2 UNION SELECT id FROM t3);
但当我尝试运行以下内容时,MySQL会抱怨:
SELECT * FROM t1 WHERE t1.id NOT IN (SELECT id FROM t2 UNION SELECT id FROM t3);
错误是"意外' SELECT'"为第三个选择。
我的语法有问题吗?这不可能吗?如果这是唯一的方法,我可以使用EXISTS
进行重写。
答案 0 :(得分:1)
它们不是您查询的错误:
MySQL 5.6架构设置:
create table t1 ( id int );
create table t2 ( id int );
create table t3 ( id int );
insert into t1 values (1);
insert into t2 values (2);
insert into t3 values (3);
查询1 :
SELECT * FROM t1 WHERE t1.id NOT IN
(SELECT id FROM t2 UNION SELECT id FROM t3)
<强> Results 强>:
| id |
|----|
| 1 |