SQL基礎(一)--多表連接delete刪除表數據


一、DELETE刪除多表數據,怎么才能同時刪除多個關聯表的數據呢

       1. delete from t1 where 條件

       2. delete t1 from t1 where 條件

       3. delete t1 from t1,t2 where 條件

       4. delete t1,t2 from t1,t2 where 條件 (不行) 

簡單用delete語句無法進行多表刪除數據操作,不過可以建立級聯刪除,在兩個表之間建立級聯刪除關系,則可以實現刪除一個表的數據時,同時刪除另一個表中相關的數據。

1、從數據表t1中把那些id值在數據表t2里有匹配的記錄全刪掉:
DELETE T1 FROM T1,T2 WHERE T1.ID=T2.ID 或 DELETE FROM T1 USING T1,T2 WHERE T1.ID=T2.ID

2、從數據表T1里在數據表T2里沒有匹配的記錄查詢處理並刪除掉:
DELETE T1 FROM T1 LEFT JOIN T2 ON T1.ID=T2.ID WHERE T2.ID IS NULL

3、從兩個表中找出相同NAME的數據並把兩個表中的數據刪掉:
DELETE T1,T2 FROM T1 LEFT JOIN T2 ON T1.ID=T2.ID WHERE T1.NAME=T2.NAME
注意此處的DELETE T1,T2 FROM 中的T1和T2不能是別名

如:DELETE T1,T2 FROM TABLE1 LEGT JOIN TABLE2 ON T1.ID=T2.ID WHERE T1.NAME=T2.NAME 在數據里面執行是錯誤的(MYSQL 版本不小於5.0在5.0中是可以的) 上述語句改 寫成 DELETE TABLE1,TABLE2 FROM TABLE1 LEFT JOIN TABLE2 ON T1.ID=T2.ID WHERE T1.NAME=T2.NAME


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM