node.js - 如何在 Sequelize 中用 "in"制作 "subquery"?

标签 node.js sequelize.js

我有一个 sql :

SELECT * FROM user WHERE uid in (SELECT id FROM umi where pid=10)

如何在 Sequelize 中写它?

我知道代码不对,这是我的代码:
db.user.findAll({
where:{uid:[0,1,2]}
)}

我不知道如何替换 [0,1,2]

我应该查询两次吗?一种是获取数组然后查询用户?

最佳答案

你可以用 sequelize.literal 来做到:

db.user.findAll({
    where:{
        uid: {
            $in : [sequelize.literal('SELECT id FROM umi where pid=10'))]
        }
    }
)}

如果您设置了适当的关联 那么这也将起作用:
db.user.findAll({
    include : [{
        model : umi
        where : { pid : 10 }
    }]
)};

关于node.js - 如何在 Sequelize 中用 "in"制作 "subquery"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57448359/

相关文章:

ios - socket.IO-objc 与 AZSocketIO

node.js - 如何处理 sequelize 唯一约束错误?

sequelize.js - Sequelize 'as' 和 'foreign key' 属性如何影响关系?

jquery - 如何在 EJS 中附加 jQuery?

javascript - 用 Typescript 编写的 React 应用程序中的错误参数类型

javascript - 查找过去 7 天当天的最后一份文件

node.js - 如何使用 Node 将 webpack 输出为字符串

sequelize.js - Sequelize : how to set PK of join table as pair of foreign keys to be able to use save() on the join table instance without triggering 'no PK error' ?

mysql - Sequelize Model 导出一个函数

javascript - SequelizeJS 传递值数组