問題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操作前,请务必备份数据,避免造成不必要的损失。
慕斯王
TA贡献1864条经验 获得超2个赞
首先,你的delete语句,是一个语法错误,哪有一次删除两个表的道理呀。因为你要删除两个表,那么下面这样逐个表删除:#删除a表DELETEFROMaWHEREpost_idNOTEXISTS(SELECTIDFROMb);#删除b表DELETEFROMbWHEREIDNOTEXISTS(SELECTpost_idFROMa);
添加回答
举报
0/150
提交
取消