使用 Join 删除
联接也可以在 DELETE 语句中使用。给出如下架构:
CREATE TABLE Users (
UserId int NOT NULL,
AccountId int NOT NULL,
RealName nvarchar(200) NOT NULL
)
CREATE TABLE Preferences (
UserId int NOT NULL,
SomeSetting bit NOT NULL
)
我们可以从 Preferences 表中删除行,按 Users 表中的谓词进行过滤,如下所示:
DELETE p
FROM Users u
INNER JOIN Preferences p ON u.UserId = p.UserId
WHERE u.AccountId = 1234
这里 p 是语句的 FROM 子句中定义的 Preferences 的别名,我们只删除 Users 表中匹配 AccountId 的行。