【问题标题】:MySQL delete data from 5 tables by JOINING them all togetherMySQL 通过将它们全部连接在一起来删除 5 个表中的数据
【发布时间】:2017-09-15 10:15:20
【问题描述】:

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

【问题讨论】:

  • 你为什么不试试呢?
  • 对不起,先生。我真的不知道该怎么做。我希望你能帮助我如何做到这一点。
  • 您有太多未解决的问题,并被告知如何接受解决方案。
  • 我如何接受答案?

标签: php join mysqli


【解决方案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

【讨论】:

    【解决方案2】:

    试试这个,

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-01
      • 1970-01-01
      相关资源
      最近更新 更多