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
第二種跨表刪除的方式是使用inner join在join中指定兩表之間的關聯關係,如下sql語句:
複製程式碼 程式碼如下:
DELETE p.*, pp.*
FROM product p
INNER JOIN productPrice pp
ON p.productId = pp.productId
WHERE p.created
注意:跨表刪除不必刪除所有表的資料,上面的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
跨表刪除很有用,在需要的時候就用它吧。歡迎閱讀另外一篇關於跨表更新的介紹文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2618/viewspace-2803988/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 單表的更新UPDATE和刪除記錄DELETE(二十六)delete
- mysql 跨表查詢、更新、刪除示例MySql
- mysql刪除一條記錄MySql
- MYSQL資料庫表記錄刪除解決方案MySql資料庫
- 面試題: 資料庫:delete和trancate刪除表記錄的區別面試題資料庫delete
- sql 多表關聯刪除表資料SQL
- MySQL不支援DELETE使用表別名?MySqldelete
- Mysql跨表更新 多表update sql語句總結MySql
- MySQL:簡單記錄刪除binary log的介面MySql
- MySQL刪除資料表MySql
- MySQL防止delete命令刪除資料的兩種方法MySqldelete
- mysql/mariadb學習記錄——建立刪除資料庫、表的基本命令MySql資料庫
- SAP ABAP OData 服務如何支援刪除(Delete)操作試讀版delete
- MySQL刪除重複記錄並保留第一條MySql
- [MYSQL][1]建立,修改,刪除表MySql
- Mysql資料庫delete刪除後資料恢復報告MySql資料庫delete資料恢復
- 什麼?還在用delete刪除資料《死磕MySQL系列 九》deleteMySql
- 為什麼刪除記錄表檔案不會減小?(記錄的插入與刪除在磁碟上的變化)
- [20180409]delete刪除緩慢分析.txtdelete
- delete和truncate刪除的區別delete
- mySql刪除多個表 刪除多個欄位的SQLMySql
- MySQL資料庫delete資料時,不支援表別名MySql資料庫delete
- windows10更新記錄刪除_怎樣刪除win10更新歷史記錄WindowsWin10
- Oracle如何刪除表中重複記錄保留第一條Oracle
- 刪除重複id的記錄
- MySQL超大表刪除資料過程MySql
- MySQL如何優雅的刪除大表MySql
- Shift + Delete刪除的檔案如何恢復?delete
- mysql 刪除表中重複的資料MySql
- MYSQL下如何安全的快速刪除大表MySql
- 聊聊關於資料庫表記錄刪除都有哪些解決方式資料庫
- [20190130]刪除tab$記錄的恢復.txt
- MariaDB刪除重複記錄效能測試
- jQuery動態新增和刪除表格記錄jQuery
- MySQL資料庫中刪除重複記錄的方法總結[推薦]MySql資料庫
- Linux命令curl去操作delete去刪除資源Linuxdelete
- python 使用 delete 方法時報錯,可以正常刪除Pythondelete
- 修改刪除表