SQL IN 语句,其中包含多个 SELECT 语句

SQL IN statement with multiple SELECT statements in it

我的问题与此类似

Check if column value exists in another column in SQL

然而,在我的例子中,IN 语句中最多有五个 select 语句。它看起来像这样:

SELECT Criterion1 FROM tblFilter WHERE Criterion1 IN (SELECT Criterion2 FROM tblFilter, SELECT Criterion3 FROM tblFilter)

然而,当我 运行 它在 vb.net 上时,我从这个查询中得到了语法错误。那么,正确的是什么?

试试这个:

SELECT Criterion1 FROM tblFilter WHERE Criterion1 IN (SELECT Criterion2 FROM tblFilter UNION SELECT Criterion3 FROM tblFilte

UNION 将你的两个 select 语句组合在一起,但它们必须 return 相同数量的元素(你的语句中有 1 个)和相同类型。

编辑: 试试这个:

SELECT Criterion1 FROM tblFilter t1, tblFilter t2, tblFilter t3 WHERE t1.Criterion1 = t2.Criterion2 OR t1.Criterion2 = t3.Criterion3

对于 Access SQL,您需要使用这样的结构:

SELECT ... 
FROM tblFilter 
WHERE Criterion1 IN (SELECT Criterion2 FROM tblFilter) 
    OR Criterion1 IN (SELECT Criterion3 FROM tblFilter)

SELECT 来自 tblFilter 的条件 1 WHERE 标准 1 在 ( SELECT 来自 tblFilter 的标准 2

或 准则 1 在 ( SELECT 来自 tblFilter 的标准 3 )