MySQL多表連線刪除問題

2021-07-03 18:13:05 字數 1540 閱讀 8605

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...