Mysql 将此选择/联接查询转换为删除匹配的记录

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

如何转换以下查询以删除将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
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)