一、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