从一个表中选择 ID 列表并从 SQL Server 中的第二个表中删除所有 ID

j00*_*00b 2 t-sql sql-server

我正在尝试找出完成以下任务的最佳查询。

我有 2 个与 ID 列相关的表。

表格1

ID
UserID
Run Code Online (Sandbox Code Playgroud)

表2

ID
SomeDataColumn
Run Code Online (Sandbox Code Playgroud)

我需要做的是从Table1我的UserID='5'或某个号码中选择一个 ID 列表。这应该返回具有各自 ID 的多行。然后我需要Table2从我返回的 ID 列表中删除包含任何 ID 的所有行Table1。

我能弄清楚如何做到这一点的唯一方法是从我的第一个表中选择所有行,将它们放在一个游标中,然后遍历每个行,为每个 ID 运行一个删除查询。但似乎必须有一种更有效的方法来使用 join 或其他方法来做到这一点。

有任何想法吗?谢谢大家!

Tim*_*ner 5

这可能会让你到达那里:

delete from Table2 where ID in (select ID from Table1 where UserID = '5')
Run Code Online (Sandbox Code Playgroud)

您认为SQL 中有更好的方法是正确的