Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 更新多个表中的值时复制记录_Mysql_Wordpress - Fatal编程技术网

Mysql 更新多个表中的值时复制记录

Mysql 更新多个表中的值时复制记录,mysql,wordpress,Mysql,Wordpress,我正在迁移wordpress数据库中的一些数据,最后一部分就卡住了 我有三张桌子,一张是官方的WordPress桌子,两张是临时桌子。其结构如下: wp_术语关系:对象id、术语分类id、术语顺序 旧术语:术语id,slug 新术语:术语id,slug slug在旧的\u术语表和新的\u术语表之间匹配。我需要检查wp_term_关系,并使用以下规则创建新记录: 只要术语\u分类法\u id wp\u术语\u关系与术语\u id旧术语匹配 创建一个新记录,其中 object\u id=wp\u t

我正在迁移wordpress数据库中的一些数据,最后一部分就卡住了

我有三张桌子,一张是官方的WordPress桌子,两张是临时桌子。其结构如下:

wp_术语关系:对象id、术语分类id、术语顺序

旧术语:术语id,slug

新术语:术语id,slug

slug在旧的\u术语表和新的\u术语表之间匹配。我需要检查wp_term_关系,并使用以下规则创建新记录:

只要术语\u分类法\u id wp\u术语\u关系与术语\u id旧术语匹配 创建一个新记录,其中 object\u id=wp\u term\u relationships.object\u id term\u taxonomy\u id=新的\u terms.term\u id,其中新的\u terms.slug=旧的\u terms.slug term\u order=wp\u term\u关系。term\u order 我已经尝试了几十个不同的sql调用,但似乎无法解决这个问题。这是我最后一次尝试

INSERT INTO wp_term_relationships ( object_id, term_taxonomy_id, term_order )
SELECT object_id, new_terms.term_id, term_order
WHERE term_id = old_terms.term_id ON new_terms.slug = old_terms.slug

我做这件事已经有一段时间了,没有任何进展。有什么想法吗?

好吧,经过努力,我终于能够用下面的代码使它工作了

INSERT INTO wp_term_relationships ( object_id, term_taxonomy_id, term_order )
SELECT c.object_id, a.tax_term_id, c.term_order
FROM new_terms AS a
LEFT JOIN old_terms AS b ON a.slug = b.slug
LEFT JOIN wp_term_relationships AS c ON b.term_id = c.term_taxonomy_id
WHERE term_taxonomy_id IN ( SELECT term_id FROM old_terms )
如果有人遇到类似的事情,请随时联系。我觉得我对现在发生的事情比以前有了更好的理解