繁体   English   中英

我可以在 SQL 中使用带有 DELETE 子句的 JOIN

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM