По сути, я пытаюсь восстановить поврежденную базу данных WooCommerce для клиента.
У меня есть таблица wp_woocommerce_order_itemmeta, и все значения _product_id удалены. Я могу получить правильный идентификатор с помощью этого оператора выбора. Он вернет все идентификаторы, по одному в каждой строке, как хотелось.
SELECT
wp_wc_order_product_lookup.product_id
FROM
wp_woocommerce_order_items
INNER JOIN
wp_woocommerce_order_itemmeta
ON
wp_woocommerce_order_itemmeta.order_item_id = wp_woocommerce_order_items.order_item_id
INNER JOIN
wp_wc_order_product_lookup
ON
wp_wc_order_product_lookup.order_id = wp_woocommerce_order_items.order_id
WHERE
wp_woocommerce_order_itemmeta.meta_key = '_product_id'
Теперь, когда я попытался написать заявление об обновлении, я не могу заставить его работать. Я пробовал это несколькими разными способами. Я где-то читал, что SET
нужно переместить за INNER JOIN
строк.
UPDATE
wp_woocommerce_order_itemmeta
INNER JOIN
wp_woocommerce_order_itemmeta
ON
wp_woocommerce_order_itemmeta.order_item_id = wp_woocommerce_order_items.order_item_id
INNER JOIN
wp_wc_order_product_lookup
ON
wp_wc_order_product_lookup.order_id = wp_woocommerce_order_items.order_id
SET
wp_woocommerce_order_itemmeta.meta_value = wp_wc_order_product_lookup.order_id
WHERE
wp_woocommerce_order_itemmeta.meta_key = '_product_id'
Этот код вызывает следующую ошибку [Err] 1066 - Not unique table/alias: 'wp_woocommerce_order_itemmeta'
wp_woocommerce_order_itemmeta
wp_woocommerce_order_itemmeta">
wp_wc_order_product_lookup
wp_wc_order_product_lookup">