您好我需要执行以下查询
查询
update Taxonomy
set sourceId = (
select id from TaxonomyMapping a where a.oldId =
(
select cm.en_ID
from TaxonomyMapping ta
join CategoryMapping cm on ta.oldId = cm.language_ID where ta.oldId = oldId limit 1
)
) where id > -1;
表格如下:
分类法(id,oldId,sourceId,名称,语言)
TaxonomyMapping(id,oldId,sourceId,name,language)Taxonomy的精确副本
CategoryMapping(en_ID,language_ID)
我想要完成什么 原始分类表有某种语言的类别,有它的翻译,但他们需要在类别映射中知道,现在我需要将英文翻译添加到sourceId,有人可以帮我这个吗?目前它为所有人填写一个id,怀疑我使用的oldId(ta.oldId = oldId)不是要更新的表的oldId。可以像这样进行查询,还是应该搜索其他解决方案?
答案 0 :(得分:0)
我在dba.stackexchange.com中提出了同样的问题,给出的答案是正确的,这是我正在寻找的查询:
UPDATE Taxonomy t
JOIN CategoryMapping cm ON cm.language_ID = t.oldID
JOIN (SELECT * FROM Taxonomy) x ON x.oldID = cm.en_ID
SET t.sourceId = x.id
WHERE t.id > -1;
来源:https://dba.stackexchange.com/questions/50981/mysql-update-query-with-subquery