【问题标题】:delete a record from two tables in php/mysql从 php/mysql 的两个表中删除一条记录
【发布时间】:2012-09-13 13:09:21
【问题描述】:

我正在尝试使用以下代码从船表中删除“船”以及另一个表中的相关资格:

DELETE FROM tbl_boat, tbl_qualifications 
WHERE tbl_boat.BT_ID = '$bt_id' AND tbl_boat.BT_ID = tbl_qualifications.BT_ID;

问题是我收到以下错误:

1064 - 您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在第 2 行的 'WHERE tbl_boat.BT_ID = 113 AND tbl_boat.BT_ID = tbl_' 附近使用的正确语法。

感谢您对此的任何帮助。

【问题讨论】:

  • 也许你可以通过这个得到想法。 stackoverflow.com/questions/1339851/…
  • 你确定这行得通吗? ...WHERE tbl_boat.BT_ID = '$bt_id' AND tbl_boat.BT_ID = tbl_qualifications.BT_ID:这将只返回 $bt_idtbl_qualifications.BT_ID 相同的行...

标签: php mysql


【解决方案1】:

你需要执行两次删除:

-- 先删除所有关联 ...
DELETE FROM tbl_qualifications WHERE BT_ID = '$bt_id';

-- ...然后删除船
从 tbl_boat 中删除 BT_ID = '$bt_id';

【讨论】:

    【解决方案2】:

    您可能想尝试 INNER JOIN。

    DELETE FROM tbl_boat
    INNER JOIN tbl_qualifications
    WHERE tbl_boat.BT_ID = '$bt_id' AND tbl_boat.BT_ID = tbl_qualifications.BT_ID;
    

    我没有对此进行测试,但我认为这会起作用。

    【讨论】:

    • 也许添加更多信息会使这个答案更有用。 link 到 mysql 手册在这里很好,解释了多个表上的 DELETE 如何工作
    【解决方案3】:

    你必须告诉 MySQL 这两个表是如何关联的:

    DELETE tbl_boat, tbl_qualifications
    FROM
        tbl_boat
        INNER JOIN tbl_qualifications USING (BT_ID)
    WHERE
        tbl_boat.BT_ID = '$bt_id'
    

    【讨论】:

      【解决方案4】:

      应该是

      DELETE tbl_boat, tbl_qualifications FROM tbl_boat, tbl_qualifications 
      WHERE tbl_boat.BT_ID = '$bt_id' AND tbl_boat.BT_ID = tbl_qualifications.BT_ID;
      

      顺便看看How to delete from multiple tables in MySQL?

      【讨论】:

      • 我试过了,但这不起作用。我收到相同的错误消息。
      • 它只有在我将它分成两个删除语句并且只有在从限定中删除在船之前执行时才有效。
      【解决方案5】:

      这肯定会奏效:

      DELETE a.*, b.*
      FROM tbl_boat AS a
      INNER JOIN tbl_qualifications AS b
          ON b.BT_ID = a.BT_ID
      WHERE tbl_boat.BT_ID = '$bt_id';
      

      另外,如果BT_IDINTEGER 类型,则删除$bt_id 周围的引号。

      【讨论】:

        【解决方案6】:

        试试这个

        DELETE uploadfeat,postfeeds,postcomment FROM uploadfeat INNER JOIN postfeeds INNER JOIN postcomment
        WHERE uploadfeat.id=postfeeds.postID AND uploadfeat.id=postcomment.postID AND uploadfeat.id=23
        

        【讨论】:

          猜你喜欢
          • 2010-12-27
          • 2011-07-15
          • 2013-01-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-12
          相关资源
          最近更新 更多