簡體   English   中英

MySQL-過濾子查詢中的聯合

[英]MySQL - Union in a filtering subquery

我可以執行以下操作:

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進行重寫。

它們不是您查詢中的錯誤:

SQL小提琴

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)

結果

| id |
|----|
|  1 |

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM