需要查询删除记录多个表

时间:2017-06-12 08:23:50

标签: php mysql database

我希望查询能帮助我在一次点击中删除记录实际上数据来自两个不同的表格,我现在使用内部联接和显示加入表格我现在创建了一个删除按钮,并想要一个删除该按钮的查询点击完成一行。

有人告诉我,我同时应用两个查询,但是我尝试了太多,但无法理解如何。我对数据库不是很了解我是新手。

3 个答案:

答案 0 :(得分:0)

删除t1,t2 FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE_1.id = t2.id AND t2.id = t3.id;

答案 1 :(得分:0)

您应该在这两个表之间设置级联删除关系。完成后,您只需要删除主表项,其余的工作将自动完成。您不需要为删除运行两个查询。

答案 2 :(得分:0)

我这里有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查询删除 Tom 及其课程:

delete tbl1.*, tbl2.* from tbl1 join tbl2 on ( tbl1.id = tbl2.student_id ) where tbl1.id = 1;

但正如@ mukesh-dhisale所说,您应该在两个表之间设置级联删除关系,因此当您删除主记录时,其子项将自动从其他表中删除。 @ marc-b认为我们如何设置表格here