SQL中带有多个SELECT语句的IN语句

3
我的问题与这个类似。 检查SQL中另一列中是否存在列值 然而,在我的情况下,IN语句中有多达五个select语句。它看起来像这样: SELECT Criterion1 FROM tblFilter WHERE Criterion1 IN (SELECT Criterion2 FROM tblFilter, SELECT Criterion3 FROM tblFilter) 但是,当我在vb.net上运行它时,我从这个查询中得到语法错误。那么,正确的查询语句是什么?
3个回答

2

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

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

运行得非常完美!太棒了! - Caesium95

0

尝试这个:

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

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

编辑: 尝试这个:

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


2
Access SQL不支持在子查询中使用UNION [ALL] - Gord Thompson

0

从 tblFilter 表中选择 Criterion1 WHERE Criterion1 在 ( 从 tblFilter 表中选择 Criterion2 )

或者 Criterion1 在 ( 从 tblFilter 表中选择 Criterion3 )


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接