sequelize-带有关联的Where子句
sequelize - Where clause with associations
在sequelize中,我设置了板和用户,具有如下所示的多对多关联
User.hasMany(Board, {through: BoardUsers});
Board.hasMany(User, {through:BoardUsers});
不管怎样,使用where子句,我可以找到属于某个板列表的用户。例如,假设我有3个板,我想找到属于板1或板3的前20个用户(使用默认排序顺序)。有没有一种方法可以做到这一点,而不需要对每个板执行单独的查找,然后手动组合结果。
我希望能够做一些类似的事情:
User.findAll({where:{board: [1,3]}});
但我似乎找不到办法。
据我所知,等效的SQL应该是这样的:
SELECT * FROM `users` WHERE id IN (SELECT userID FROM boardusers WHERE boardId IN (1,3))
但我希望能够通过ORM来完成这项工作。
虽然我不确定您是否可以直接执行此操作,但您始终可以查询Boards
并急切地获取用户。
大致如下:
Board.findAll({where: {id: [1,3]}}, { include: [ User ] })
回复很晚,但只是有同样的问题,下面是我如何在Sequelize 3.24.0中使用它(类似这样的东西);
User.findAll({ include: [{ model: Board, where: { $in: [1,3] }}] });
相关文章:
- 在查询字符串中查找 where 子句
- 将where子句与javascript变量一起使用
- 使环回模型得到“;存在”;带有where子句的方法
- 如何在 alasql 中的 where 子句中放置特定日期
- 用于检索所有用户的 where 子句
- DexieJS(indexedDB)链多个.where子句
- 执行带有 WHERE 子句的 Sql 在 Phonegap 中不返回任何结果
- 筛选 Azure 移动服务节点.js上的 where 子句的功能
- Google 地图 API v3 中的 where 子句
- Sails.js:在查询模型时,将查询列指定为where子句中的变量
- Javascript SQL请求where子句中出现错误字段错误
- 带有where子句的Insert语句不会在nodejs-mysql上运行
- 如何在 where 子句中使用动态查询字段
- 谷歌地图融合层忽略WHERE子句
- sequelize-带有关联的Where子句
- 在sails.js中关联模型的Where子句
- 用NOT LIKE where子句序列化查询
- SQLite:当前日期加上where子句中的一天
- Where子句在' OR '语句中使用包含关系
- 为什么Array不.有些工作在Mongo的$where子句中