我有一张包含oldid和oldparid的表。我想更新row.oldpar = otherrow.oldid的行,但我的查询有问题。
UPDATE 01_menu_main SET parid = x.newpar
FROM (SELECT oldid, id as newpar FROM 01_menu_main) x
WHERE x.oldid = 01_menu_main.oldpar
我收到的错误是
有什么我想念的吗?谢谢!
答案 0 :(得分:1)
您遇到语法错误。查询应该是
addresses = [["123 Street", "New York", "0123", "USA"], ["421 Street", "New York", "0233", "USA"]]
CSV.open(csv_file, "w", force_quotes: true) do |csv|
csv << [street_address, city, zipcode, state]
addresses.each do |address|
csv << address
end
end
根据上述语法更改查询并告诉我。
<强>更新强>
UPDATE table SET key=value WHERE condition
检查上面的代码是否有效?您必须使用UPDATE
01_menu_main t1
JOIN
01_menu_main t2
ON
t2.oldid = t1.oldpar
SET
t1.parid = t2.newpar
来完成您的尝试。
答案 1 :(得分:1)
使用连接
update
01_menu_main t1
join 01_menu_main t2 on t2.oldid = t1.oldpar
set
t1.parid = t2.newpar