MySQL通过将它们连接在一起来从5个表中删除数据

时间:2017-09-15 10:15:21

标签: php join mysqli

我想知道是否可以通过连接5个表来删除数据。我有5个表,即 tbl1,tbl2,tbl3,tbl4,tbl5 ,它们都是名为 transaction_id 的列。是否可以通过JOIN查询删除他们的数据?

2 个答案:

答案 0 :(得分:1)

你可以使用连接来实现,但连接会使过程复杂化。

例如: DELETE table1,table2,table3 FROM table1 INNER JOIN table2 INNER JOIN table3 WHERE table1.userid = table2.userid AND table2.userid = table3.userid AND table1.userid = 3

另一种方法是使用ON DELETE CASCADE选项在表上定义外键约束。然后从父表中删除记录将从子表中删除记录。

表示参考:https://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html#innodb-foreign-key-definitions

答案 1 :(得分:0)

试试这个,

DELETE FROM tbl1 
USING tbl1, tbl2,tbl3,tbl4,tbl5
WHERE tbl1.transaction_id = tbl2.transaction_id AND tbl3.transaction_id = tbl1.transaction_id AND tbl4.transaction_id = tbl1.transaction_id AND tbl5.transaction_id = tbl1.transaction_id AND WHERE tab1.transaction_id = yourid;