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

时间:2015-03-16 17:35:10

标签: sql ms-access select

我的问题与此类似。

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上运行它时,我从此查询中得到语法错误。那么,正确的是什么?

3 个答案:

答案 0 :(得分:2)

对于Access SQL,您需要使用如下构造:

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

答案 1 :(得分:0)

试试这个:

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

UNION将你的两个选择装置组合在一起,但它们必须返回相同的元素数(你的装备中的1个)和相同的类型。

编辑: 试试这个:

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

答案 2 :(得分:0)

SELECT Criterion1 FROM tblFilter 标准1 在 ( SELECT Criterion2 FROM tblFilter)

或 标准1( SELECT Criterion3 FROM tblFilter )