只要你有适当的索引,这应该是正常的:UPDATE table_aSET
column_a_1 = (SELECT table_b.column_b_1
FROM table_b WHERE table_b.user_name = table_a.user_name )
, column_a_2 = (SELECT table_b.column_b_2 FROM table_b WHERE table_b.user_name = table_a.user_name )WHERE
EXISTS (
SELECT *
FROM table_b WHERE table_b.user_name = table_a.user_name )
sqlite3中的UPDATE 不支持FROM子句,这使得它比其他RDBMS更多的工作。
如果性能不令人满意,另一个选项可能是使用select和table_a连接到table_a为临时表建立新行。然后从table_a中删除数据并从临时值中重新填充。