[英]Can i use a JOIN with DELETE clause in SQL
我想知道以下查询在 sql 中是否有效:
DELETE FROM Reporters
JOIN Cases ON Reporters.CaseId = Cases.ID
WHERE Cases.Court = @Court
我收到一个错误:
连接附近的语法不正确
DELETE r
FROM reporters as r
INNER JOIN cases as c
ON r.CaseId = c.ID
WHERE c.Court = @Court
是的,你可以,你只需要为你的表指定别名并使用它删除:
DELETE R
-- SELECT *
FROM Reporters AS R
INNER JOIN Cases AS C
ON R.CaseId = C.ID
WHERE C.Court = @Court ;
如果您将表作为别名,它将起作用;
DELETE r
FROM Reporters AS r
INNER JOIN Cases AS c
ON r.CaseId = c.ID
WHERE c.Court = @Court
或者你可以使用
DELETE FROM Reporters
WHERE EXISTS (SELECT 1 FROM Cases WHERE Cases.ID = Reporters.CaseId AND Cases.Court = @Court)
提及您要从中删除的表。 (该解决方案特定于 SQL Server)
DELETE re --if you wanted to delete the cases replace `re` with `ca`
FROM Reporters re
JOIN Cases ca ON re.CaseId = ca.ID
WHERE ca.Court = @Court
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.