亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 379 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號