我有:选择一些对。第一列是table
中行的id,第二列是应该分配给该行的新值。
-- the first query
CREATE TABLE tmp;
SELECT row_id, new_value
FROM [not essential tables and joins]; //PSEUDOCODE
-- another queries
FOR EACH tmp //PSEUDOCODE
UPDATE table SET value = new_value WHERE id = row_id;
-- QUESTION: CAN I MERGE SELECT AND UPDATE IN ONE QUERY?
-- I want avoid creating temporary table.
问题:通过表进行迭代(如上例所示)会降低代码的清晰度和速度。
问题: *如何在单个查询中执行相同操作
答案 0 :(得分:2)
我认为你正在寻找更新表连接与其他表(不确定)。你可以做点什么
UPDATE tmp a
JOIN sometable b ON a.col = b.col
AND a.id = b.row_id
SET a.value = b.new_value