首页 > 解决方案 > sequalize PostgreSQL 中的嵌套内连接

问题描述

我想显示除了角色名称是管理员交易员和客户的所有用户。

用户表有:id、name、email 和密码

角色表有:id、role_name

RoleMapping 有:id、user_id 和 role_id

这是我的查询

models.User.findAll({
      include: [{
            model: models.RoleMapping,
            as: 'user_role',
            attributes: ['user_id', 'role_id'],
            include: [{
                model: models.Role,
                as: 'Role',
                attributes: ['id', 'role_name', ],
            }]
        }],
        where :{
            '$Role.role_name$': {
                $notIn: ['Trader','Customer','admin']
            }

        }  
    })

收到此错误错误:缺少表“角色”的 FROM 子句条目

标签: postgresqlincludesequelize.jswhere-clause

解决方案


你能试一下吗?让我知道,我会尝试更新答案。我不测试它

models.User.findAll({
  include: [{
        model: models.RoleMapping,
        as: 'user_role',
        attributes: ['user_id', 'role_id'],
        include: [{
            model: models.Role,
            as: 'Role',
            attributes: ['id', 'role_name', ],
            where :{
              role_name: {
                  $notIn: ['Trader','Customer','admin']
              }
          }
        }]
    }],  
})

推荐阅读