SELECT * FROM table1 WHERE serialnumber NOT IN
(
SELECT serialnumber FROM table2
UNION ALL
SELECT serialnumber FROM table3
UNION ALL
SELECT serialnumber FROM table4
...
)
代替子查询,您可以执行更高效的 Left Join . 我们可以简单地从 table1 其他的table( table1 留给他们所有人的table)。现在, serialnumber 其他表中不存在的值将具有 null 值post join。所以,我们可以简单地使用 Where serialnumber IS NULL 要筛选的条件:
SELECT t1.* FROM table1 AS t1
LEFT JOIN table2 AS t2 ON t2.serialnumber = t1.serialnumber
LEFT JOIN table2 AS t3 ON t3.serialnumber = t1.serialnumber
LEFT JOIN table2 AS t4 ON t4.serialnumber = t1.serialnumber
LEFT JOIN table2 AS t5 ON t5.serialnumber = t1.serialnumber
WHERE t2.serialnumber IS NULL AND
t3.serialnumber IS NULL AND
t4.serialnumber IS NULL AND
t5.serialnumber IS NULL
2条答案
按热度按时间4nkexdtk1#
添加union all子句:
hfwmuf9z2#
代替子查询,您可以执行更高效的
Left Join
. 我们可以简单地从table1
其他的table(table1
留给他们所有人的table)。现在,serialnumber
其他表中不存在的值将具有null
值post join。所以,我们可以简单地使用Where serialnumber IS NULL
要筛选的条件: