我想查询,帮助我删除一个记录点击其实数据来自两个不同的表,我加入两个使用内部连接和显示在桌子上现在我创建一个删除按钮并希望一个查询删除点击完成的行。需要查询删除记录多个表
有人告诉我,我们同时应用两个查询,我尝试了太多,但无法理解。我对数据库没有深入的了解,我是新手。
我想查询,帮助我删除一个记录点击其实数据来自两个不同的表,我加入两个使用内部连接和显示在桌子上现在我创建一个删除按钮并希望一个查询删除点击完成的行。需要查询删除记录多个表
有人告诉我,我们同时应用两个查询,我尝试了太多,但无法理解。我对数据库没有深入的了解,我是新手。
DELETE t1,t2 FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id = t2.id AND t2.id = t3.id;
您应该在这两个表之间设置级联删除的关系。完成之后,您只需删除主表条目,其余工作将自动完成。您不需要运行两个查询来删除。
我这里有2个示例表:
MariaDB [Test_delete_query]> select * from tbl1;
+----+--------------+
| id | student_name |
+----+--------------+
| 1 | Tom |
| 2 | Emily |
+----+--------------+
2 rows in set (0.00 sec)
MariaDB [Test_delete_query]> select * from tbl2;
+----+------------+-------------+
| id | student_id | course_name |
+----+------------+-------------+
| 1 | 1 | Mathematic |
| 2 | 1 | History |
+----+------------+-------------+
2 rows in set (0.00 sec)
它可以删除汤姆使用下面的SQL查询他的课程:
delete tbl1.*, tbl2.* from tbl1 join tbl2 on (tbl1.id = tbl2.student_id) where tbl1.id = 1;
但作为@穆克什 - dhisale说你应该在两个表之间设置级联删除的关系,因此当您删除主记录时,它的子项将自动从其他表中删除。 @ marc-b认为我们如何设置我们的桌子来做到这一点here。
我知道,但我的问题是我对数据库关系知之甚少。 你能指导我吗? –
@AwaisButt看看[这篇文章](https://stackoverflow.com/questions/2914936)。你会在那里找到有用的提示。如果您有其他问题,请不要犹豫,再问一次。 –
这里是我运行此查询时出错... “MULTI DELETE中的未知表'tab_issueid'” –
你是对的,但现在的问题是我不擅长数据库关系 –