【问题标题】:Nested inner join in sequalize PostgreSQLsequelize PostgreSQL中的嵌套内连接
【发布时间】:2019-07-28 21:35:11
【问题描述】:

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

用户表有: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 子句条目

【问题讨论】:

    标签: postgresql include sequelize.js where-clause


    【解决方案1】:

    你可以试试吗?让我知道,我会尝试更新答案。我不测试它

    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']
                  }
              }
            }]
        }],  
    })
    

    【讨论】:

    • 它正在返回所有用户,但角色表数据仅与不属于 notIn 条件的用户关联。但它也不应该显示用户数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 2020-04-23
    • 2021-06-23
    • 2016-11-25
    • 1970-01-01
    • 2019-03-13
    相关资源
    最近更新 更多