SQL中多表連線delete同時刪除關聯表資料

2021-09-27 07:16:26 字數 1075 閱讀 3946

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 條件

前 3者是可行的,第4者不可行。

也就是簡單用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 或 delete from t1,using t1 left join t2 on t1.id=t2.id where t2.id is null

3、 從兩個表中找出相同記錄的資料並把兩個表中的資料都刪除掉

delete t1,t2 from t1 left join t2 on t1.id=t2.id where t1.id=25

注意此處的delete t1,t2 from 中的t1,t2不能是別名

如:delete t1,t2 from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25 在資料裡面執行是錯誤的(mysql 版本不小於5.0在5.0中是可以的)

上述語句改 寫成

delete table_name,table2_name from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25

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

SQL多表連線

oracle8 select a.b.from a,b where a.id b.id 相當於左聯接 select a.b.from a,b where a.id b.id 相當於右聯接 oracle9 支援以上的寫法,還增加了leftjoin right join等 select a.b.from...

SQL多表連線

1.內連線 查詢兩張表共有部分 等值連線 語法 select from 表a inner join 表b on a.key b.key 2.左連線 把左邊表的內容全部查出,右邊表只查出滿足條件的記錄 語法 select from 表a left join 表b on a.key b.key 3.右連...