0
我有這樣相關的兩個表:Sequelize的findAll與belongsToMany協會
聯賽
sequelize.define('league', {
name: {
type: DataTypes.STRING,
},
ownerId: {
type: DataTypes.INTEGER,
}
}, {
classMethods: {
associate: function(models) {
League.belongsToMany(models.user, {
constraints: false,
through: models.UserLeague,
});
}
}
}, {
freezeTableName: true
});
用戶
sequelize.define('user', {
name: {
type: DataTypes.STRING
},
email: {
type: DataTypes.STRING,
unique: true,
validate: {
isEmail: true
}
},
profile_picture: {
type: DataTypes.STRING
}
}, {
classMethods: {
associate: function(models) {
User.belongsToMany(models.league, {
constraints: false,
through: models.UserLeague,
});
}
}
}, {
freezeTableName: true
});
我想獲得的所有聯賽是在他們中有一定的用戶:我現在正在執行此操作,但出現錯誤column league.users.id does not exist
sequelize.transaction(function (t) {
return models.user.findOne({where: {email: req.query.email}}, {transaction: t}).then(function(user) {
return models.league.findAll({where: {'users.id': user.id}, include: [{model: models.user, as: 'users'}]}).then(function(leagues) {
res.json(leagues);
});
});
});
我該如何檢索哪裏有某個用戶的聯賽?
好的,這部分是我想要的:)這給了我包含我想要的用戶的聯盟,但是隻返回了想要的用戶而不是聯盟所有屬於聯盟的用戶。你明白我的意思嗎? –
我很確定,你需要兩個查詢來實現這一點。 – Adam
也許,但我不知道如何。第一個可以檢索聯盟,但是如何添加聯盟中的所有用戶。這就是我想念的。不知道我需要它爲我在做什麼,但我想知道如何去做:) –