选择后SQLite高效更新

时间:2013-09-20 11:03:27

标签: sqlite

我有两张桌子: 列的位置:id,x,y,entityID 列速度:id,speedX,speedY,entityID

只有一些实体有速度所以我需要以某种方式在位置和速度之间进行内部连接。

我的问题是我想在一个查询中从Speed表中为Position.entityID = Speed.entityID更新位置。

拜托,你能用一些SQL东西打我吗?

谢谢你!

1 个答案:

答案 0 :(得分:2)

使用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)

Performance vise这不是最佳(内部查询),如果适合您的场景,您可能还想评估“INSERT OR REPLACE”。