Knex - 更新选择值的行

时间:2017-04-07 09:36:57

标签: javascript database sqlite knex.js

我正在使用sqlite3数据库并拥有这两个表。

列表

  • ID
  • OriginID

属性

  • ID
  • ListID
  • OriginList

Attributes.OriginList == List.OriginID

我需要更新Attributes中的行以匹配当前的List.ID.我正在使用Knex,我当前的原始查询如下所示:

UPDATE Attributes 
SET ListID = (SELECT ID 
              FROM List 
              WHERE OriginID = Attributes.OriginList)

我刚刚开始使用数据库,并一直试图想出办法,没有原始的做法,但是没有成功。有这样的方式吗?

1 个答案:

答案 0 :(得分:0)

这样的事情应该创建OP中提到的RAW查询:

knex('Attributes').update({ 
  ListID: knex('List').select('ID').where('OriginID', knex.raw('??', ['Attributes.OriginList']))
})