我有一个可以从0返回的SQL查询,让我们说20个结果。例如:
SELECT value_id FROM table1 t1
INNER JOIN table2 t2 ON ....
INNER JOIN table3 t3 ON ....
WHERE ....
然后,我想为每个value_id
UPDATE查询运行。让我们说:
UPDATE table4
SET new_value = 1
WHERE value_id IN (SELECT value_id FROM table1 t1
INNER JOIN table2 t2 ON ....
INNER JOIN table3 t3 ON ....
WHERE ....)
子查询可以解决这个问题吗?性能效率还是其他方式?
答案 0 :(得分:1)
您的查询没问题。性能取决于数据库的结构。例如,如果SELECT
运行得很快,那么UPDATE
应该非常快(不是那么快:UPDATE
会有更多的开销。)
因此,您的问题的答案是:是的,子查询可以像这样工作。测试SELECT
版本(使用table4
)以了解对效果的影响。