[英]SQL Delete all rows in a table based on another table and another column value
表格1:
| ID | POST STATUS |
| 12807 | wc-refunded |
| 13075 | wc-refunded |
表2:
| ORDER ID | ------- |
| 12807 | ------- |
| 13075 | ------- |
讓我更好地解釋一下,如果 post_status = wc-refunded,我想根據表 1 的所有 ID 刪除表 2 中的所有 ORDER ID
MYSQL 版本:5.7
編輯:用@Tim Biegeleisen 的第一個解決方案修復(謝謝! )
DELETE
FROM wp_woocommerce_downloadable_product_permissions
WHERE EXISTS (SELECT 1 FROM wp_posts
WHERE wp_posts.ID = wp_woocommerce_downloadable_product_permissions.order_id AND wp_posts.post_status = 'wc-refunded');
您可以使用存在邏輯:
DELETE
FROM table2 t2
WHERE EXISTS (SELECT 1 FROM table1 t1
WHERE t1.ID = t2.ORDERID AND t1.poststatus = 'wc-refunded');
我們也可以嘗試使用刪除連接邏輯:
DELETE t2
FROM table2 t2
INNER JOIN table1 t1
ON t1.ID = t2.ORDERID
WHERE t1.poststatus = 'wc-refunded';
試試這個:
DELETE FROM table2
WHERE OrderID IN (
SELECT DISTINCT ID
FROM table1
WHERE PostStatus = 'wc-refunded'
)
它有點資源密集型,但應該可以工作......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.