如何从SQL Server中具有多个值的2个复合键的表中删除多行?

时间:2013-05-15 18:07:20

标签: sql sql-server

我有一张表包含来自组织的电话列表。此表有2列表组织(ID)和电话的外键。

电话

ID  Telephone   
1   1234
1   3456
1   9999
3   9999

我想删除第一行和第二行,为此,我有ID值1和一个包含要删除的数字(1234,3 3456)的表@TempTels

我想到了这个,但它不起作用:

Delete From TelephonesOrg 
where ID = ID AND Telephone = (Select Telephone from @TempTels)

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

由于该子选择会返回多个值,因此您需要使用IN - 而不是=等号:

Delete From TelephonesOrg 
where ID = 1 
  AND Telephone IN (Select Telephone from @TempTels)

答案 1 :(得分:0)

@Dante Snow从你的代码中你有3行id = 1..so如果你想删除前2行只有你必须使用如下...

Delete From TelephonesOrg 
where ID = 1 AND Telephone in (1234, 3456)