2017-06-22 2 views
0

J'ai une requête de sélection qui vérifie les doublons.Supprimer la ligne avec la requête qui utilise l'instruction de jointure

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 

ce retourne 2458 enregistrements avec comptage (meta_value) supérieure à 1-- je dois supprimer ces enregistrements (en laissant une copie du dossier si possible), mais à chaque fois que je tente une requête de suppression comme cela, je reçois une erreur

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) 

erreur est

Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser à proximité 'select DUPLICATE.entity_id dans (Sélectionner DISTINCT (pm.meta_key =' _ sku ') comme sku, Count' à la ligne 1

Répondre

0

i pensez que vous venez de manquer un opérateur là:

supprimer p dE wp_yepf_posts p rejoindre wp_yepf_postmeta h p.ID = pm.post_id ET (sélectionnez DUPLICATE.entity_id dans (sélectionner DISTINCT (pm.meta_key = '_ sku') comme sku, Count (pm.meta_key = '_ sku') comme skuCount, entity_id de wp_yepf_posts p rejoindre wp_yepf_postmeta pm le p.ID = pm.post_id group by sku ayant skucount> 1) comme dup)

+0

Err] 1093 - Vous ne pouvez pas spécifier la table cible 'p' pour la mise à jour dans la clause FROM – ForgivenIT

+0

Je pense que vous avez maintenant une erreur assez directe. vous suggérerait d'essayer d'utiliser différents alias (vous avez utilisé "p" deux fois). aussi, cela semble être un duplicata de https://stackoverflow.com/questions/45494/mysql-error-1093-cant-specify-target-table-for-update-in-from-clause afin que cela puisse vous aider sur –

+0

je sais comment supprimer où et pas dedans (ce que je ne peux pas obtenir au travail est supprimer des copies ... n'essayant pas d'être dense mais je manque quelque chose quelque part – ForgivenIT