2017-04-13 20 views
0

我已經嘗試了我刪除這3分不同的方式。 如果條件正確,我想從表buylist_products中刪除該行。(er_parse_error)#1064

嘗試1:

DELETE FROM parkage_buylist_products bp, parkage_productsmeta pm, parkage_buylist b WHERE bp.product_id = pm.product_id AND (pm.meta_key = 'we_buy_price' OR pm.meta_key = 'we_buy_rule') AND pm.meta_value = 0 AND bp.order_id = b.order_id AND b.status = 'in_progress' AND b.order_id = 24 

嘗試2:

DELETE FROM parkage_buylist_products bp 
LEFT JOIN parkage_productsmeta pm, parkage_buylist b 
ON bp.product_id = pm.product_id 
WHERE (pm.meta_key = 'we_buy_price' OR pm.meta_key = 'we_buy_rule') 
AND pm.meta_value = 0 
AND bp.order_id = b.order_id 
AND b.status = 'in_progress' 
AND b.order_id = 24 

嘗試3:

DELETE FROM parkage_buylist_products bp, parkage_buylist b  
WHERE bp.order_id = b.order_id 
AND b.status = 'in_progress' 
AND b.order_id = 24 
AND bp.product_id IN (SELECT pm.product_id 
        FROM parkage_productsmeta pm 
       WHERE (pm.meta_key = 'we_buy_price' OR pm.meta_key = 'we_buy_rule') 
       AND pm.meta_value = 0 

對於第一個我試圖,刪除鹼基,刪除BP *這它給我一個語法錯誤。

謝謝您的幫助

enter image description here

+0

1)關於其他2個企圖是什麼? 2)請與我們分享確切的錯誤訊息。 – Shadow

+0

3次嘗試我有同樣的錯誤:#1064。我在phpMyAdmin中沒有顯示更多詳細信息 – Pet

+0

是的,它的確如此。 phpmyadmin顯示完整的MySQL錯誤信息。 – Shadow

回答

0

請嘗試以下...

DELETE parkage_buylist_products, 
     parkage_productsmeta, 
     parkage_buylist 
FROM parkage_buylist_products 
JOIN parkage_productsmeta 
JOIN parkage_buylist 
WHERE parkage_buylist_products.product_id = parkage_productsmeta.product_id 
    AND parkage_buylist_products.order_id = parkage_buylist.order_id 
    AND (parkage_productsmeta.meta_key = 'we_buy_price' OR 
     parkage_productsmeta.meta_key = 'we_buy_rule') 
    AND parkage_productsmeta.meta_value = 0 
    AND parkage_buylist.status = 'in_progress' 
    AND parkage_buylist.order_id = 24; 

做使用標準delete from many tables at once sql快速搜索,我發現網頁在delete from two tables in one query後。我從他們最受歡迎的答案(由Eric)中選擇了第二個選項,並用您的代碼對其進行了修改。

根據我的研究,這應該從DELETE後指定那些符合規定的標準,這是一樣的你的問題記錄表中刪除。請注意,我已經剝離了別名 - 我寧願在沒有他們的地方工作。大概你仍然可以在這裏使用它們。

如果您有任何問題或意見,請隨時發佈相應評論。

+0

它不喜歡後的元素刪除。我不明白爲什麼。它說:意外的令牌。一個問題,它會刪除相應的3個表中的行嗎? – Pet

+0

增加了第二個版本。請嘗試。 (對不起,這是我第一次嘗試在一個語句中刪除多個表)。 – toonice

+0

哎呀,你的東西工作得很好謝謝你!我刪除了關於粘貼的一封信:/非常感謝你 – Pet