带外键的Sequelize ORM中的MySQL查询
我有这个疑问,带外键的Sequelize ORM中的MySQL查询,mysql,sequelize.js,Mysql,Sequelize.js,我有这个疑问, UPDATE physics_tbls SET Level_id = (SELECT level_id FROM level_tbl WHERE Level = 'Higher') WHERE id = 192; 我需要找到Sequelize的等价物 为了解释,我有一个表physics\u tbls,其中有一个字段Level\u id,它在另一个名为Level\u tbls的表中有一个字段Level的外键 当我更新级别id时,我需要在级别tbls表中的“更高”上进行选择,以查看
UPDATE physics_tbls SET Level_id = (SELECT level_id FROM level_tbl WHERE Level = 'Higher') WHERE id = 192;
我需要找到Sequelize的等价物
为了解释,我有一个表physics\u tbls,其中有一个字段Level\u id,它在另一个名为Level\u tbls的表中有一个字段Level的外键
当我更新级别id时,我需要在级别tbls表中的“更高”上进行选择,以查看级别id应包含哪些id
我应该使用“through”吗
我搞不懂什么
任何帮助都将不胜感激
谢谢
后续问题:使用原始查询
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))
参考: