【问题标题】:MySQL query in Sequelize ORM with foreign key使用外键在 Sequelize ORM 中进行 MySQL 查询
【发布时间】:2023-03-23 22:42:02
【问题描述】:

我有这个问题,

UPDATE physics_tbls SET Level_id = (SELECT level_id FROM level_tbl WHERE Level = 'Higher') WHERE id = 192;

我需要找到对应的 Sequelize。

所以解释一下,我有一个表physics_tbls,其中有一个字段Level_id,它与另一个名为level_tbls的表中的字段Level有一个外键。

当我更新 Level_id 时,我需要在 level_tbls 表中的 'Higher' 上执行 SELECT 以查看 Level_id 应该输入什么 id

我应该使用“通过”作为here吗?

我无法理解this

任何帮助将不胜感激。

谢谢,

关注问题:Using a raw SQL query with Sequelize ORM and literal

【问题讨论】:

    标签: mysql sequelize.js


    【解决方案1】:

    使用原始查询

    sequelize.query("UPDATE physics_tbls SET Level_id = (SELECT level_id FROM level_tbl WHERE Level = 'Higher') WHERE id = 192;").then(([results, metadata]) => {
      // Results will be an empty array and metadata will contain the number of affected rows.
    })
    

    子查询可以这样完成...

    physics_tbls.update(
        { Level_id : [clout.sequelize.literal("SELECT level_id FROM level_tbl WHERE Level = 'Higher'"))] }, 
        { where: { _id: 192 } }
    ).then(result => handleResult(result))
     .catch(err => handleError(err)) 
    
    

    参考:

    【讨论】:

    • 非常感谢,我没有意识到你可以像这样将原始 sql 放入 sequelize 中。非常有用,再次感谢您的帮助
    • 我们有时不要忽略一些事情。乐于助人:)
    • 这篇文章对我有很大帮助,但我有一个关于此处发布的问题stackoverflow.com/q/57739619/4001324
    猜你喜欢
    • 2012-09-11
    • 2018-11-06
    • 2022-10-14
    • 1970-01-01
    • 2019-08-16
    • 2017-04-08
    • 1970-01-01
    • 2022-12-29
    • 1970-01-01
    相关资源
    最近更新 更多