T-SQL中的多个属性条件

时间:2014-07-07 09:51:17

标签: tsql

我想检查另一个请求的结果中是否存在“一对”属性。 我尝试了以下查询,但语法不好。

SELECT ID
FROM Table1
WHERE (Col_01, Col_02) IN
(
    SELECT Col_01, Col_02
    FROM Table2
)

是否有可能在T-SQL中做类似的事情?

1 个答案:

答案 0 :(得分:1)

您可以使用EXISTS和相关子查询:

SELECT ID
FROM Table1 t1
WHERE EXISTS
(
    SELECT *
    FROM Table2 t2
    WHERE t2.Col_01 = t1.Col_01 AND
          t2.Col_02 = t1.Col_02
)

你最初的尝试是一个很好的尝试 - 一些数据库系统确实允许我们使用行集构造函数来创建任意元组,并且语法与你展示的非常相似,但它们在T-SQL中不受支持在这部分语法中,所以你必须走这条稍微冗长的路线。