这是我尝试运行的语句的简化版本(让a,b和m成为只有一列包含整数的表):
SELECT * FROM m WHERE
c1 IN (SELECT * FROM a) OR
c1 IN (SELECT * FROM b)
AND (NOT c1 IN (SELECT * FROM a)
OR c1 IN (SELECT * FROM b));
我知道这可以更轻松地完成,但我必须保持这种结构(例如,不能加入)。我的问题是,我怎么能避免在AND NOT之后重复子查询,因为它们将返回与之前相同的集合?
谢谢!