2015-10-20 2 views
1

У меня есть две базы данных, и мне нужно связать их данные, и я не уверен, как действовать.Поля обновления MYSQL со связанными данными

У меня есть две слегка измененные таблицы WordPress (только для целей миграции данных)

wp_term_taxonomy 
++++++++ 
term_taxonomy_id 
term_id 
description 
parent 
count 

wp_terms 
++++++++ 
term_id 
name 
slug 
term_group 
old_parent 
old_id 

В wp_terms, я добавил old_parent и old_id полей, так как это данные, поступающие из моей старой базы данных.

Мне нужно ОБНОВИТЬ таблицу wp_term_taxonomy, в частности поле parent с данными из таблицы wp_terms. В частности, где угодно, где wp_terms.old_parent имеет запись, мне нужно найти соответствующее поле wp_terms.old_id (поэтому, если есть родительский элемент 1, ему нужно вернуться назад и искать old_id = 1), а затем обновить wp_term_taxonomy .parent со значением wp_terms.term_id для совпадающего wp_terms.old_parent.

Я попробовал несколько вариантов что-то вроде этого, но я явно не хватает что-то фундаментальное:

UPDATE wp_o1y4a6ifud_term_taxonomy AS a, wp_o1y4a6ifud_terms AS b, wp_o1y4a6ifud_terms AS c 
SET a.parent = b.term_id 
WHERE b.old_parent = c.old_id 

ответ

1

Вот мой подход:

UPDATE wp_o1y4a6ifud_term_taxonomy AS a 
INNER JOIN wp_o1y4a6ifud_terms AS b 
ON a.term_id = b.term_id 
INNER JOIN wp_o1y4a6ifud_terms AS c 
ON b.old_parent = c.old_id 
SET a.parent = c.term_id 
+0

Отлично! Это именно то, что мне нужно. Благодаря! – idealbrandon

+0

Добро пожаловать! Удачи с вашим проектом :-) – Alex

Смежные вопросы