mysql支持跨表delete刪除多表記錄
更新時間:2012年12月16日 15:20:56 作者:
Mysql可以在一個sql語句中同時刪除多表記錄,也可以根據(jù)多個表之間的關系來刪除某一個表中的記錄
前幾天寫了Mysql跨表更新的一篇總結,今天我們看下跨表刪除。
在Mysql4.0之后,mysql開始支持跨表delete。
Mysql可以在一個sql語句中同時刪除多表記錄,也可以根據(jù)多個表之間的關系來刪除某一個表中的記錄。
假定我們有兩張表: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中指定兩表之間的關聯(liá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
跨表刪除很有用,在需要的時候就用它吧。歡迎閱讀另外一篇關于跨表更新的介紹文章
在Mysql4.0之后,mysql開始支持跨表delete。
Mysql可以在一個sql語句中同時刪除多表記錄,也可以根據(jù)多個表之間的關系來刪除某一個表中的記錄。
假定我們有兩張表: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中指定兩表之間的關聯(liá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
跨表刪除很有用,在需要的時候就用它吧。歡迎閱讀另外一篇關于跨表更新的介紹文章
相關文章
MySQL高效模糊搜索之內置函數(shù)locate instr position find_in_set使用詳解
在MySQL中一般進行模糊搜索都是使用LIKE配合通配符進行查詢的,在性能上一定的影響,下面給大家分享MYSQL自帶的內置模糊搜索函數(shù),除最后一個外其它三個性能上要比Like快些2018-09-09
MYSQL數(shù)據(jù)庫查詢按日期分組統(tǒng)計詳細代碼
這篇文章主要給大家介紹了關于MYSQL數(shù)據(jù)庫查詢按日期分組統(tǒng)計的相關資料,按日期分組是指按照時間維度對數(shù)據(jù)進行分類匯總統(tǒng)計,常用于查詢分析具有時間屬性的數(shù)據(jù),例如訂單量、用戶活躍等,需要的朋友可以參考下2024-01-01

