delete是乙個蠻慎重的sql操作,一般來說這樣刪除操作都需要謹慎小心,以免造成不必要的損失。
delete有下面這幾種情況:ø
delete from t1 where條件ø
delete t1 from t1 where條件ø
delete t1 from t1,t2 where條件ø
delete t1,t2 from t1,t2 where
條件簡單地說就是
delete
語句是無法進行多表刪除資料操作,不過可以通過建立級聯刪除,在兩個表之間建立級聯刪除關係,來實現刪除乙個表的資料時,同時刪除另乙個表中相關的資料。
舉例說明:
1) 從資料表
mv中把那些
id值在資料表
track
裡有匹配的記錄全刪除
掉delete mv
from mv,track
where track.trkid=mv.mvid
等同於delete from mv
using mv,track
where track.trkid=mv.mvid
2) 從資料表
mv裡在資料表
track
裡沒有匹配的記錄查詢出來並刪除掉
delete mv
from mv
left join track
on mv.mvid=track.trkid
where track.trkid is null
等同於delete from mv
using mv
left join track
on mv.mvid=track.trkid
where track.trkid is null
3) 從兩個表中找出相同記錄的資料並把兩個表中的資料都刪除掉
delete mv,track
from mv
left join track
on mv.mvid=track.trkid
where mv.mvid=1
用別名的方式:
delete t1,t2
from mv t1
left join track t2
on t1.mvid=t2.trkid
where t1.mvid=2
※ 以下兩種情況會報錯:
delete mv,track
from mv as t1
left join track as t2
on t1.mvid=t2.trkid
where t1.mvid=5
***********************
delete t1,t2
from mv t1
left join track t2
on t1.mvid=t2.trkid
where mv.mvid=2
so如果使用了別名的方式,那麼上下一致都用別名。
MySQL多表連線刪除問題
delete是乙個蠻慎重的sql操作,一般來說這樣刪除操作都需要謹慎小心,以免造成不必要的損失。delete有下面這幾種情況 delete from t1 where條件 delete t1 from t1 where條件 delete t1 from t1,t2 where條件 delete t1...
mysql多表連線索引問題
要想明白多表連線過程中索引是否起作用,哪個表的索引起作用。首先先了解在join連線時哪個表是驅動表,哪個表是被驅動表 1.當使用left join時,左表是驅動表,右表是被驅動表,2.當使用right join時,右表時驅動表,左表是被驅動表,3.當使用join時,mysql會選擇資料量比較小的表作...
mysql多表刪除 MySQL中多表刪除方法
如果您是才接觸mysql資料庫的新人,那麼mysql中多表刪除是您一定需要掌握的,下面就將為詳細介紹mysql中多表刪除的方法,供您參考,希望對你學習掌握mysql中多表刪除能有所幫助。1 從mysql資料表t1中把那些id值在資料表t2裡有匹配的記錄全刪除掉 delete t1 from t1,t...