包含多个 SELECT 语句的 SQL IN 语句
Posted
技术标签:
【中文标题】包含多个 SELECT 语句的 SQL IN 语句【英文标题】:SQL IN statement with multiple SELECT statements in it 【发布时间】:2015-03-16 17:35:10 【问题描述】:我的问题与此类似。
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 上运行它时,我从这个查询中得到了语法错误。那么,什么是正确的呢?
【问题讨论】:
【参考方案1】:对于 Access SQL,您需要使用如下构造:
SELECT ...
FROM tblFilter
WHERE Criterion1 IN (SELECT Criterion2 FROM tblFilter)
OR Criterion1 IN (SELECT Criterion3 FROM tblFilter)
【讨论】:
完美运行!太棒了!【参考方案2】:从 tblFilter 中选择标准 1 WHERE 标准 1 在 ( 从 tblFilter 中选择 Criterion2)
或 标准 1 在 ( 从 tblFilter 中选择标准 3 )
【讨论】:
【参考方案3】:试试这个:
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
【讨论】:
Access SQL 在子查询中不支持UNION [ALL]
。以上是关于包含多个 SELECT 语句的 SQL IN 语句的主要内容,如果未能解决你的问题,请参考以下文章
在 Oracle Sql 中的 Select 语句中根据条件排除和包含列标题