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
)
我的问题与此类似
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 )