我有一个具有这种结构的表
table: WP_ICL_TRANSLATIONS
translation_id | element_type | element_id | trid | language_code | source_language_code
18 post_page 15 14 en Null
427 post_page 1228 14 zh-hans en
20 post_page 17 15 en Null
166 post_page 228 15 zh-hans en
和另一个这样的表:
table: WP_POSTMETA
ID | post_content
15 english content...
1228 chinese content...
17 english content...
228 chinese content...
我需要做的是用英文内容更新英文字段post_content
。
帖子关系使用字段trid
所以,如果我想在WP_POSTMETA中更新id为15的记录,我必须转到WP_ICL_TRANSLATIONS
表并搜索具有相同trid
的另一个id,然后获取该id.With id我可以更新WP_POSTMETA
表。
我现在有一个选择来获取英文ID的相应中文ID:
select element_id from wp_icl_translations where trid=(select trid from wp_icl_translations where element_id=779) and element_id<>779;
但我必须手动输入ID。
查询是否可以进行更新?也许使用时态表?
答案 0 :(得分:1)
UPDATE WP_POSTMETA p1, WP_POSTMETA p2
, WP_ICL_TRANSLATIONS t1, WP_ICL_TRANSLATIONS t2
SET p1.post_content = p2.post_content
WHERE t1.trid = t2.trid
AND t1.element_id = p1.ID
AND t2.element_id = p2.ID
AND t1.language_code = 'en'
AND t2.language_code = 'zh-hans'