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

問題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
HUWWW
浏览 365回答 2
2回答

叮当猫咪

你应该先通过AleftjoinB,清除掉A表。再使用BleftjoinA清理掉B表。或者使用innerjoin取出。然后采用notin的方式去处理。当然这种方式效率更低。另外,在执行delete操作前,请务必备份数据,避免造成不必要的损失。

慕斯王

首先,你的delete语句,是一个语法错误,哪有一次删除两个表的道理呀。因为你要删除两个表,那么下面这样逐个表删除:#删除a表DELETEFROMaWHEREpost_idNOTEXISTS(SELECTIDFROMb);#删除b表DELETEFROMbWHEREIDNOTEXISTS(SELECTpost_idFROMa);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript