我有一个临时表,想要检查一个where子句,其中某个id / string包含在临时表中。
Select...
WHERE MyId IN MyTempTable
我在MS SQL Management Studio中遇到一般错误。
是不适合临时表的“In”运算符?
答案 0 :(得分:23)
您的语法错误:
SELECT ...
FROM MyTable
WHERE MyID IN (SELECT MyID
FROM MyTempTable)
我不太喜欢IN运算符,所以我更喜欢这个:
SELECT ...
FROM MyTable
WHERE EXISTS (SELECT *
FROM MyTempTable
WHERE MyTable.MyID = MyID)
但这主要是品味问题。
答案 1 :(得分:3)
您的语法略有错误。你需要这样做:
SELECT ...
FROM ...
WHERE MyId IN (SELECT MyId
FROM MyTempTable);
答案 2 :(得分:0)
in
需要特定项目列表。表通常有多个字段,如何知道您的字段?
您可以使用子查询where field in (select whatever from #temp)