首頁  >  問答  >  主體

在一個查詢中從兩個表中刪除

<p>我在 MySQL 中有兩個表</p> <pre class="brush:php;toolbar:false;">#messages table : messageid messagetitle . . #usersmessages table usersmessageid messageid userid . .</pre> <p>現在如果我想從訊息表中刪除就可以了。但是當我透過 messageid 刪除訊息時,記錄仍然存在於 usersmessage 上,我必須立即從這兩個表中刪除。 </p> <p>我使用了以下查詢:</p> <pre class="brush:php;toolbar:false;">DELETE FROM messages LEFT JOIN usersmessages USING(messageid) WHERE messageid='1' ;</pre> <p>然後我測試</p> <pre class="brush:php;toolbar:false;">DELETE FROM messages , usersmessages WHERE messages.messageid = usersmessages.messageid and messageid='1' ;</pre> <p>但是這兩個查詢沒有完成這個任務。 </p>
P粉401901266P粉401901266418 天前457

全部回覆(2)我來回復

  • P粉164942791

    P粉1649427912023-08-28 10:18:24

    DELETE a.*, b.* 
    FROM messages a 
    LEFT JOIN usersmessages b 
    ON b.messageid = a.messageid 
    WHERE a.messageid = 1

    翻譯:從表格messages中刪除,其中messageid = 1,如果表格uersmessages有messageid =表messages的messageid,則刪除該行用戶訊息表。

    回覆
    0
  • P粉595605759

    P粉5956057592023-08-28 09:11:20

    不能用分號分隔它們嗎?

    Delete from messages where messageid = '1';
    Delete from usersmessages where messageid = '1'

    只需使用INNER JOIN,如下所示

    DELETE messages , usersmessages  FROM messages  INNER JOIN usersmessages  
    WHERE messages.messageid= usersmessages.messageid and messages.messageid = '1'

    回覆
    0
  • 取消回覆