delete連表刪除

2021-08-11 12:24:17 字數 1661 閱讀 7406

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

在資料裡面執行是錯誤的(mysql 版本小於5.0在5.0中是可以的)

聯表刪除:

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 在資料裡面執行是錯誤的(mysql 版本小於5.0在5.0中是可以的)

delete 多表刪除的使用(連表刪除)

delete刪除多表資料,怎樣才能同時刪除多個關聯表的資料呢?這裡做了深入的解釋 1 delete from t1 where 條件 2delete t1 from t1 where 條件 3delete t1 from t1,t2 where 條件 4delete t1,t2 from t1,t2...

連表刪除以及連表修改

用一句sql同時修改有關聯的兩張表資料 通過一張表的其中乙個欄位去修改這張表的資料同時修改關聯表的資料,不去寫兩次修改。因為有可能在修改資料的時候可能產生異常,導致表1的資料修改了,表2的資料未修改,所以可以用到連表修改 連表修改 update mixrecord a,mix record batc...

刪除表資料delete和truncate

truncate 命令用法 語法truncate table name 引數name 是要截斷的表的名稱或要刪除其全部行的表的名稱。注釋truncate table 在功能上與不帶 where 子句的 delete 語句相同 二者均刪除表中的全部行。但 truncate table 比 delete...