[英]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
進行重寫。
它們不是您查詢中的錯誤:
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.