如何使用mysql连接从两(2)个以上的表中删除

如何使用mysql连接从两(2)个以上的表中删除,mysql,sql,Mysql,Sql,我试图在我的数据库上运行多重删除,但当它运行时没有错误,但没有删除任何内容?如果一个表没有任何东西可以链接到另一个表,内部联接是否会失败 使用Express.js api中的查询,我正在尝试完成我们的工作 我通常在DBMS中测试这样的大查询,然后再将它们放入api中 以下是查询: DELETE task,issue,milestone,help_source,project_task,project_source,project_milestone,task_created_by,mileSto

我试图在我的数据库上运行多重删除,但当它运行时没有错误,但没有删除任何内容?如果一个表没有任何东西可以链接到另一个表,内部联接是否会失败

使用Express.js api中的查询,我正在尝试完成我们的工作

我通常在DBMS中测试这样的大查询,然后再将它们放入api中

以下是查询:

DELETE task,issue,milestone,help_source,project_task,project_source,project_milestone,task_created_by,mileStone_created_by,issue_created_by,source_created_by,task_issue,milestone_task,project_creation,project
      from project_creation
      INNER JOIN project_milestone ON project_milestone.projectId = project_creation.projectId
      INNER JOIN project_task ON project_task.projectId = project_creation.projectId
      INNER JOIN project_source ON project_source.projectId = project_creation.projectId
      INNER JOIN task_created_by ON task_created_by.taskId = project_task.taskId
      INNER JOIN mileStone_created_by On mileStone_created_by.mileStoneId = project_milestone.mileStoneId
      INNER JOIN source_created_by ON source_created_by.sourceId = project_source.sourceId
      INNER JOIN task_issue ON task_issue.taskId = project_task.taskId
      INNER JOIN issue_created_by ON issue_created_by.issueId = task_issue.issueId
      INNER JOIN milestone_task On milestone_task.taskId = project_task.taskId
      INNER JOIN task On task.taskId = project_task.taskId
      INNER JOIN issue ON issue.issueId = task_issue.issueId
      INNER JOIN milestone ON milestone.mileStoneId = project_milestone.mileStoneId
      INNER JOIN help_source On help_source.sourceId = project_source.sourceId
      INNER JOIN project ON project.projectId = project_creation.projectId
    WHERE project.projectId = 59;
我的逻辑有错误吗?如果是,是什么?还是在我不知道的情况下删除

您可能会问的问题:

我是否尝试搜索堆栈溢出? ANS:是的,但似乎找不到适合这种奇怪情况的答案

所以没有错误?
答案:不,当我运行查询时没有错误

尝试查看该主题:

据我所知,您需要为每个表指定别名。 所以任务,问题。。。是别名,但在内部联接表名称之后看不到任何别名 (正确,名称与表相同,但可能需要别名) 例如:在…上的内部联接任务。。。 (现在task是一个别名,所以可以从表task中删除)
没有检查它,但如果要工作,则应进行修复。

替换
删除。。。使用
选择*FROM
,查看您是否看到要删除的内容。听起来您可能想/需要了解InnoDB和级联删除。这是一个很好的教程。哦,哇,这是一个很好的检查。无论如何,当我将其更改为
select*from
时,会显示所有列,但不会检索到任何内容。一个或多个表可能已经是空的,这会停止进程吗?@RaymondNijland我确实使用了外键tho,并且上面的大多数表都是连接表,以确保数据库至少处于第四范式(4NF)范式(1-4NF)是旧的东西,我喜欢使用更多。现在尝试一下,结果是一样的。但是谢谢。我想我可能需要将这个大查询拆分成更小的一个,shope commit是oncommit吗?这是什么?当insert、update、delete时,如果commit处于关闭状态,则不会对表进行任何更改(只是虚拟的)。基本上,它说要立即执行命令。可以尝试使用一个简单的插入来查看是否添加了内容,然后是否启用了提交