为了账号安全,请及时绑定邮箱和手机立即绑定

mysql 刪除沒有該條件的數據?從其他數據表更新該資數據的值到另一個數據表?

mysql 刪除沒有該條件的數據?從其他數據表更新該資數據的值到另一個數據表?

HUWWW 2019-05-12 11:05:16
問題A數據表欄位為post_idB數據表的欄位為urlA跟B都有很多數據A跟B有些post_id跟url是相符的,有些是不相符的(A跟B有關聯性的字段是post_id跟url)如何把不相符的都刪除?只留下有關聯性的DELETEa,bFROM`a`JOIN`b`ONb.ID!=a.post_id這樣卻失敗了....?mariaDB報錯誤:#1064-YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMariaDBserverversionfortherightsyntaxtousenear'JOINbONb.ID!=a.post_id'atline3然後又說a,b這一段是預期以外的符號?PS:我要刪的是兩個資料表,只要都有不符合就刪除該筆我確定有SELECT到非常多不相符的數據,也有相符的數據。a的post_id有多個,例如b.ID假如等於123那a.post_id有一個或多個123
查看完整描述

2 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

你应该先通过AleftjoinB,清除掉A表。再使用BleftjoinA清理掉B表。
或者使用innerjoin取出。然后采用notin的方式去处理。当然这种方式效率更低。
另外,在执行delete操作前,请务必备份数据,避免造成不必要的损失。
                            
查看完整回答
反对 回复 2019-05-12
?
慕斯王

TA贡献1864条经验 获得超2个赞

首先,你的delete语句,是一个语法错误,哪有一次删除两个表的道理呀。
因为你要删除两个表,那么下面这样逐个表删除:
#删除a表
DELETEFROMaWHEREpost_idNOTEXISTS(SELECTIDFROMb);
#删除b表
DELETEFROMbWHEREIDNOTEXISTS(SELECTpost_idFROMa);
                            
查看完整回答
反对 回复 2019-05-12
  • 2 回答
  • 0 关注
  • 364 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信