我有一个SQL查询,如:
delete from myTable where versionId in (select id from version where code='TEST')
嵌套在删除查询中的选择查询。我想使用NodeJS Sequelize构建相同的查询,因此代码可能是这样的:
db.myTable.destroy({
where: {
versionId: { $in: [12, 34, 56] }
}
}).then(nbDeleted => {
...
}
在该示例中,[12,34,56]是硬编码的,但我想使用选择查询而不是它。
我试图用这种方式搜索,但是现在我无法找到解决方案。
有什么想法吗?
答案 0 :(得分:2)
你所追求的是literal。试试这个:
db.myTable.destroy({
where: {
versionId: {
$in: [
sequelize.literal("select id from version where code='TEST'")
]
}
}
}).then(nbDeleted => {
...
}
Sequelize会直接将这个字面直接放入你的where-in子句而不进行任何处理。