簡體   English   中英

從基於其他2個值的mysql表中刪除

[英]Delete from a mysql table based on other 2 values

我想從表中刪除rk21a_virtuemart_product_categories其中virtuemart_category_id = 251和product_discount_idrk21a_virtuemart_product_prices = 0

嘗試過此查詢,但無法正常工作(刪除了其中virtuemart_category_id = 251的所有內容,而不同時刪除所有條件)

DELETE FROM rk21a_virtuemart_product_categories
   WHERE virtuemart_category_id = 251
   AND virtuemart_product_id IN (
   SELECT virtuemart_product_id
   FROM rk21a_virtuemart_product_prices
   WHERE product_discount_id = 0)

這些表是:

**rk21a_virtuemart_product_categories**
id   virtuemart_product_id  virtuemart_category_id
12   119                    160
13   121                    251
15   122                    173
20   123                    251

**rk21a_virtuemart_product_prices**
virtuemart_product_price_id virtuemart_product_id product_discount_id
1021                         119                  5
1022                         121                  0
1023                         122                  0
1024                         123                  10

有人可以告訴我我在做什么錯嗎? 我是初學者。謝謝

嘗試以下方法:

DELETE c
FROM rk21a_virtuemart_product_categories AS c
INNER JOIN rk21a_virtuemart_product_prices AS p 
        ON c.virtuemart_product_id  = p.virtuemart_product_id
WHERE c.virtuemart_category_id = 251
  AND p.product_discount_id = 0;

演示

在第一個表rk21a_virtuemart_product_categories ,有兩行的類別ID = 251,但是在第二個表中,只有兩行的rk21a_virtuemart_product_categories .product_discount_id = 0 ,因此將僅刪除一行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM