使用 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
的行。