您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何使用Sequelize在联接表上生成查询?

如何使用Sequelize在联接表上生成查询?

要获得与用户相关联的所有角色,即使其中一个查询匹配,也需要定义另一个关联,以便可以在sequelize语句中两次包含角色表。

User.hasMany(models.UserRole, { foreignKey: 'user_id', as: 'roles2' });

后记语句-

const userInfo = await User.findAndCountAll({
  include: [
    {
      model: UserRole,
      attributes: ['id', 'role'],
      as: 'roles',
      where: { [Op.or]: [{ role: { [Op.like]: '%MANAGER%' } },
      required: true
    },
    {
      model: UserRole,
      attributes: ['id', 'role'],
      as: 'roles2',
      required: true
    } 
  ],
  where: whereStatement,
});

借助第一个包含(联接)功能,您可以根据用户角色过滤用户记录,而借助第二个包含(联接)功能,您可以获取角色之一匹配的用户的所有角色。

其他 2022/1/1 18:53:21 有568人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶