关联模型上的何处

时间:2019-03-05 04:29:43

标签: mysql node.js sequelize.js

我有三个模型User,Group,UserGroup。用户和组通过UserGroup模型有许多关系。 我希望获得包含所有组成员的组,但也只希望用户属于其中的那些组。这是我的续集查询。

        Group.findAll({
            include: ['members'],
            where: {
                '$members.id$': user_id
            }
        });

使用上述代码中的where条件,将根据user_id对组进行过滤。即。它返回与用户模型相关的组,其ID等于user_id。但是此查询并未提供所有成员。它只会返回一个ID等于user_id的用户。这意味着“ where”条件不仅在过滤组,还在过滤组成员。

这是我的协会

Group.hasMany(UserGroup, {as: {singular: 'usergroup', plural: 'usergroups'}, foreignKey: 'group_id'});
Group.belongsToMany(User, {as: {singular: 'member', plural: 'members'}, through: UserGroup});

UserGroup.belongsTo(User, {as: 'member', foreignKey: 'user_id'});
UserGroup.belongsTo(Group, {as: 'group', foreignKey: 'group_id'});

1 个答案:

答案 0 :(得分:1)

您可以尝试一下,让我知道:)

select id, attrib, attrib_value from table where attrib=Router