2017-04-07 32 views
0

我正在使用sqlite3数据库并拥有这两个表。Knex - 更新行中选择的值

列表

  • ID
  • OriginID

属性

  • ID
  • ListID
  • OriginList

Attributes.OriginList == List.OriginID

我需要在属性更新行,以匹配当前List.ID.我使用Knex和我目前的原始查询看起来是这样的:

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

我刚开始用DB和一直在试图想出的办法做到不生,但都没有成功。有没有这样的方式?

回答

0

像这样的东西应该创造OP提到的RAW查询:

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

曾担任意,谢谢你。 – Kuasta