SELECT business.name FROM business WHERE (3) NOT IN (1,2,3)
以上是有效的MySQL语句。但是我需要一个允许 NOT IN 条件与 2 个列表一起使用的语句,即第一个列表中的元素都没有出现在第二个列表中。
例如
SELECT business.name FROM business WHERE (4, 5) NOT IN (1,2,3)
注意:每个列表只有整数值,每个列表都是使用嵌套查询从不同的表生成的。
提前谢谢你
最佳答案
如果两个列表的值都被嵌套查询检索到,
然后你可以加入这两个嵌套查询的结果集并检查它们是否具有共同的值。
如果是 - 这意味着列表 1 中的某些值存在于列表 2 中
最终查询可能如下所示:
select *
from business
where not exists(
SELECT 1 FROM
(
-- nested query that retrieves values of list 1
SELECT val FROM list1
) x
JOIN
(
-- nested query that retrieves values of list 2
SELECT val FROM list2
) y
ON x.val = y.val
);
SQLFiddle 演示 --> http://www.sqlfiddle.com/#!2/5e47b/2
关于MySQL List Set理论,关系型数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18422570/