程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql支撐跨表delete刪除多表記載

mysql支撐跨表delete刪除多表記載

編輯:MySQL綜合教程

mysql支撐跨表delete刪除多表記載。本站提示廣大學習愛好者:(mysql支撐跨表delete刪除多表記載)文章只能為提供參考,不一定能成為您想要的結果。以下是mysql支撐跨表delete刪除多表記載正文


頭幾天寫了Mysql跨表更新的一篇總結,明天我們看下跨表刪除。
在Mysql4.0以後,mysql開端支撐跨表delete。
Mysql可以在一個sql語句中同時刪除多表記載,也能夠依據多個表之間的關系來刪除某一個表中的記載。
假定我們有兩張表: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中指定兩表之間的聯系關系關系,以下sql語句:

DELETE p.*, pp.*
FROM product p
INNER JOIN productPrice pp
ON p.productId = pp.productId
WHERE p.created < '2004-01-01'

留意:跨表刪除不用刪除一切表的數據,下面的sql語句表會同時刪除Product和ProductPrice兩張表中的數據,然則你可以指定 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

跨表刪除很有效,在須要的時刻就用它吧。迎接浏覽別的一篇關於跨表更新的引見文章
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved