我有两个表:
列位置:id,x,y,entityID
带列的速度:id,speedX,speedY,entityID
只有某些实体具有速度,因此我需要某种内部连接以介于位置和速度之间。
我的问题是我想在一个查询中从Speed表中的Position.entityID = Speed.entityID更新速度。
拜托,您能给我一些SQL资料吗?
感谢你!
最佳答案
使用join更新的典型方法:
update Position
set x=(select speedx from Speed s where s.entityID=Position.entityID),
set y=(select speedy from Speed s where s.entityID=Position.entityID)
where exists (select 1 from Speed where s.entityID=Position.entityID)
性能虎钳不是最佳选择(内部查询),如果适合您的情况,您可能还需要评估“ INSERT OR REPLACE”。
关于sqlite - 选择后SQLite高效更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18915185/