首页  >  问答  >  正文

在一个查询中从两个表中删除

<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 天前458

全部回复(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
  • 取消回复