Mysql 将此选择/联接查询转换为删除匹配的记录
如何转换以下查询以删除将projectd/Project\u ID匹配为14的记录Mysql 将此选择/联接查询转换为删除匹配的记录,mysql,Mysql,如何转换以下查询以删除将projectd/Project\u ID匹配为14的记录 select * from Project join Project_Assigned where Project.Project_ID = Project_Assigned.ProjectID and Project.Project_ID = 14; select语句可以工作,但当我尝试将其转换为删除匹配的记录时,会出现错误1064(42000) 试试这个 DELETE FROM Project WHER
select * from Project join Project_Assigned
where Project.Project_ID = Project_Assigned.ProjectID
and Project.Project_ID = 14;
select语句可以工作,但当我尝试将其转换为删除匹配的记录时,会出现错误1064(42000)
试试这个
DELETE FROM Project
WHERE Project_ID = 14
AND Project_ID IN
(SELECT ProjectID FROM Project_Assigned
WHERE ProjectID = 14)
出现第一个错误,因为delete不能包含join子句 我认为你不可能只通过一个查询就做到这一点。您需要考虑ProjyType赋值和Project的所有相关表,并查看它们的外键并首先删除它们的记录。
此外,在从项目中删除记录之前,必须先从分配的Project_中删除记录,因为存在外键。现在我遇到了以下错误:无法删除或更新父行:外键约束失败(
fyp_db
Project_分配的
,约束ProjectID
外键(ProjectID
)引用了Project
(Project\u ID
)上的DELETE-NO-ACTION-ON-UPDATE-NO-ACTION)Project\u分配了字段ProjectID,因此子查询应该是ProjectID而不是Project\u ID。
DELETE FROM Project
WHERE Project_ID = 14
AND Project_ID IN
(SELECT ProjectID FROM Project_Assigned
WHERE ProjectID = 14)