Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带外键的Sequelize ORM中的MySQL查询_Mysql_Sequelize.js - Fatal编程技术网

带外键的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)) 

参考:


非常感谢您,我不知道您可以像这样将原始sql添加到sequelize中。非常有用,再次感谢你的帮助。我们有时都会忽略一些事情。很乐意帮忙:)这篇文章帮了我很大的忙,但我在这里贴了一个后续问题