我想检查另一个请求的结果中是否存在“一对”属性。 我尝试了以下查询,但语法不好。
SELECT ID
FROM Table1
WHERE (Col_01, Col_02) IN
(
SELECT Col_01, Col_02
FROM Table2
)
是否有可能在T-SQL中做类似的事情?
答案 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中不受支持在这部分语法中,所以你必须走这条稍微冗长的路线。