2017-06-22 151 views
0

我有一個選擇查詢來檢查重複項。使用連接語句的查詢刪除行

select ID, post_id, post_name, post_date, Count(meta_value) FROM wp_yepf_posts p join wp_yepf_postmeta pm on p.ID = pm.post_id WHERE p.post_type = 'product' and pm.meta_key='_sku' group by meta_value having count(meta_value)>1 

這將返回2458條記錄與計數(meta_value)大於1--我需要刪除這些記錄(留下記錄,如果有可能的一個副本),但每次我嘗試這樣刪除查詢我得到一個錯誤

delete p 
FROM wp_yepf_posts p 
join wp_yepf_postmeta pm on p.ID = pm.post_id (select DUPLICATE.entity_id in (Select DISTINCT(pm.meta_key='_sku') as sku, Count(pm.meta_key='_sku') as skuCount, entity_id 
from wp_yepf_posts p join wp_yepf_postmeta pm on p.ID = pm.post_id 
group by sku Having skucount>1) as dup) 

誤差

您的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的正確語法手冊「中選擇DUPLICATE.entity_id(SELECT DISTINCT(pm.meta_key =」 _ SKU「)的SKU,伯爵」在1號線

回答

0

我以爲你只是錯過了一個運營商有:

刪除p FROM wp_yepf_posts p 上p.ID = pm.post_id (選擇DUPLICATE.entity_id加入wp_yepf_postmeta分在(SELECT DISTINCT(pm.meta_key = '_ SKU' )as sku,Count(pm.meta_key ='_sku')as skuCount,entity_id from wp_yepf_posts p join p_ID = pm.post_id group by sku將skucount> 1)視爲dup)

+0

Err] 1093 - 您無法在FROM子句中指定目標表'p'進行更新 – ForgivenIT

+0

我認爲您現在有一個相當直接的錯誤。會建議你嘗試使用不同的別名(你使用了兩次「p」)。此外,這似乎可能是重複的https://stackoverflow.com/questions/45494/mysql-error-1093-cant-specify-target-table-for-update-in-from-clause,所以它可能會幫助你出 –

+0

我知道如何刪除在哪裏,而不是在(我不能去工作是刪除重複...沒有嘗試密集,但我失去了一些東西 – ForgivenIT