在一个查询中从两个表中删除
P粉401901266
P粉401901266 2023-08-27 13:45:48
[MySQL讨论组]
<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'
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号