mysql支持跨表delete刪除多表記錄
更新時間:2012年12月16日 15:20:56 作者:
Mysql可以在一個sql語句中同時刪除多表記錄,也可以根據(jù)多個表之間的關(guān)系來刪除某一個表中的記錄
前幾天寫了Mysql跨表更新的一篇總結(jié),今天我們看下跨表刪除。
在Mysql4.0之后,mysql開始支持跨表delete。
Mysql可以在一個sql語句中同時刪除多表記錄,也可以根據(jù)多個表之間的關(guān)系來刪除某一個表中的記錄。
假定我們有兩張表:Product表和ProductPrice表。前者存在Product的基本信息,后者存在Product的價格。
第一種跨表刪除的方式是不用join,在delete時指定用半角逗號分隔多個表來刪除,如下sql語句:
DELETE p.*, pp.*
FROM product p, productPrice pp
WHERE p.productId = pp.productId
AND p.created < '2004-01-01'
第二種跨表刪除的方式是使用inner join在join中指定兩表之間的關(guān)聯(lián)關(guān)系,如下sql語句:
DELETE p.*, pp.*
FROM product p
INNER JOIN productPrice pp
ON p.productId = pp.productId
WHERE p.created < '2004-01-01'
注意:跨表刪除不必刪除所有表的數(shù)據(jù),上面的sql語句表會同時刪除Product和ProductPrice兩張表中的數(shù)據(jù),但是你可以指定 DELETE product.*從而只刪除product表中的記錄,而不處理ProductPrice表中的記錄。
跨表刪除也可以使用left join,例如我們要刪除所有在ProductPrice表中沒有記錄的Product表記錄。如下sql語句:
DELETE p.*
FROM product p
LEFT JOIN productPrice pp
ON p.productId = pp.productId
WHERE pp.productId is null
跨表刪除很有用,在需要的時候就用它吧。歡迎閱讀另外一篇關(guān)于跨表更新的介紹文章
在Mysql4.0之后,mysql開始支持跨表delete。
Mysql可以在一個sql語句中同時刪除多表記錄,也可以根據(jù)多個表之間的關(guān)系來刪除某一個表中的記錄。
假定我們有兩張表:Product表和ProductPrice表。前者存在Product的基本信息,后者存在Product的價格。
第一種跨表刪除的方式是不用join,在delete時指定用半角逗號分隔多個表來刪除,如下sql語句:
復制代碼 代碼如下:
DELETE p.*, pp.*
FROM product p, productPrice pp
WHERE p.productId = pp.productId
AND p.created < '2004-01-01'
第二種跨表刪除的方式是使用inner join在join中指定兩表之間的關(guān)聯(lián)關(guān)系,如下sql語句:
復制代碼 代碼如下:
DELETE p.*, pp.*
FROM product p
INNER JOIN productPrice pp
ON p.productId = pp.productId
WHERE p.created < '2004-01-01'
注意:跨表刪除不必刪除所有表的數(shù)據(jù),上面的sql語句表會同時刪除Product和ProductPrice兩張表中的數(shù)據(jù),但是你可以指定 DELETE product.*從而只刪除product表中的記錄,而不處理ProductPrice表中的記錄。
跨表刪除也可以使用left join,例如我們要刪除所有在ProductPrice表中沒有記錄的Product表記錄。如下sql語句:
復制代碼 代碼如下:
DELETE p.*
FROM product p
LEFT JOIN productPrice pp
ON p.productId = pp.productId
WHERE pp.productId is null
跨表刪除很有用,在需要的時候就用它吧。歡迎閱讀另外一篇關(guān)于跨表更新的介紹文章
相關(guān)文章
MySQL高效模糊搜索之內(nèi)置函數(shù)locate instr position find_in_set使用詳解
在MySQL中一般進行模糊搜索都是使用LIKE配合通配符進行查詢的,在性能上一定的影響,下面給大家分享MYSQL自帶的內(nèi)置模糊搜索函數(shù),除最后一個外其它三個性能上要比Like快些2018-09-09
詳細聊一聊mysql的樹形結(jié)構(gòu)存儲以及查詢
由于mysql是關(guān)系型數(shù)據(jù)庫,因此對于類似組織架構(gòu),子任務(wù)等相關(guān)的樹形結(jié)構(gòu)的處理不是很友好,下面這篇文章主要給大家介紹了關(guān)于mysql樹形結(jié)構(gòu)存儲以及查詢的相關(guān)資料,需要的朋友可以參考下2022-04-04
MYSQL數(shù)據(jù)庫查詢按日期分組統(tǒng)計詳細代碼
這篇文章主要給大家介紹了關(guān)于MYSQL數(shù)據(jù)庫查詢按日期分組統(tǒng)計的相關(guān)資料,按日期分組是指按照時間維度對數(shù)據(jù)進行分類匯總統(tǒng)計,常用于查詢分析具有時間屬性的數(shù)據(jù),例如訂單量、用戶活躍等,需要的朋友可以參考下2024-01-01
Mysql根據(jù)時間查詢?nèi)掌诘膬?yōu)化技巧
這篇文章主要介紹了Mysql根據(jù)時間查詢?nèi)掌诘膬?yōu)化技巧,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-03-03
SQL筆記之數(shù)據(jù)庫結(jié)構(gòu)優(yōu)化方式
這篇文章主要介紹了SQL筆記之數(shù)據(jù)庫結(jié)構(gòu)優(yōu)化方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01

