【问题标题】:Knex - updating rows where value from selectKnex - 更新选择值的行
【发布时间】:2017-04-07 09:36:56
【问题描述】:

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

列表

  • 身份证
  • 来源ID

属性

  • 身份证
  • 列表ID
  • 原产地列表

Attributes.OriginList == List.OriginID

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

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

我刚开始使用 DB,并且一直在尝试想办法在没有 raw 的情况下做到这一点,但没有成功。有没有这样的方法?

【问题讨论】:

    标签: javascript database sqlite knex.js


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-15
      • 2021-01-04
      • 1970-01-01
      • 2019-01-03
      • 2017-02-07
      • 1970-01-01
      相关资源
      最近更新 更多