使用JOIN返回错误删除多个表中的行

问题描述 投票:1回答:1

我花了一些时间在我的WP DB试图找出我怎么能清理掉一些已完成的订单数据。下面是我相信会帮助所有不同表的顺序删除数据的查询。

但是,当我运行下面的查询:

DELETE * FROM wp_post
JOIN wp_postmeta ON wp_post.ID = wp_postmeta.post_id
JOIN wp_woocommerce_order_items ON wp_postmeta.post_id =  wp_woocommerce_order_items.order_item_id
JOIN wp_woocommerce_order_itemmeta ON wp_postmeta.post_id = wp_woocommerce_order_itemmeta.order_item_id
WHERE wp_post.post_type = "shop_order" 
AND wp_post.post_status = "wc-completed"

我碰到下面的MySQL错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '* FROM wp_post
JOIN wp_postmeta ON wp_post.ID = wp_postmeta.post_id
JOIN wp_wo' at line 1

我不能正确地加入我的WordPress表?

这个问题可能是更适合于计算器,但想我会首先尝试在这里。

mysql join
1个回答
1
投票

尝试添加表的表名,你要删除的行

DELETE wp_post  
FROM wp_post
JOIN wp_postmeta ON wp_post.ID = wp_postmeta.post_id
JOIN wp_woocommerce_order_items ON wp_postmeta.post_id =  wp_woocommerce_order_items.order_item_id
JOIN wp_woocommerce_order_itemmeta ON wp_postmeta.post_id = wp_woocommerce_order_itemmeta.order_item_id
WHERE wp_post.post_type = "shop_order" 
AND wp_post.post_status = "wc-completed"

并为更多的则表中删除的DELETE子句添加的表名 例如,对于wp_post和wp_postmeta使用

DELETE wp_post, wp_postmeta  
FROM wp_post
JOIN wp_postmeta ON wp_post.ID = wp_postmeta.post_id
JOIN wp_woocommerce_order_items ON wp_postmeta.post_id =  wp_woocommerce_order_items.order_item_id
JOIN wp_woocommerce_order_itemmeta ON wp_postmeta.post_id = wp_woocommerce_order_itemmeta.order_item_id
WHERE wp_post.post_type = "shop_order" 
AND wp_post.post_status = "wc-completed"
© www.soinside.com 2019 - 2024. All rights reserved.