在一个查询中从两个表中删除
P粉401901266
P粉401901266 2023-08-27 13:45:48
0
2
485
<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粉401901266
P粉401901266

全部回复(2)
P粉164942791
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,则删除该行用户消息表。

P粉595605759

不能用分号分隔它们吗?

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'
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板