试图找出如何使用 Sequelize 正确设置连接,可能对我整体上对 SQL 不太熟悉的帮助没有帮助。
models.farms.hasMany(models.users, {foreignKey: 'farmId'});
models.users.belongsTo(models.farms, {foreignKey: 'farmId'});
models.users.find({
where: {id:33},
include: [models.farms]
})
.then(function(aResponse) {
aNext(null, aResponse);
})
.catch(function(aError) {
aNext(aError);
});
用户表有一个“farmId”字段,而农场表有相同的字段,我正在尝试使用它来匹配它们,因为我稍后需要农场的特定 ID。如果我将用户更新为 math 'id' 那么它就可以工作,但不是'farmId',这正是我需要的。
farms 也将有其他连接到 farm_area 和crop_types,可能稍后更多,仍然计算所有逻辑。
任何帮助,将不胜感激。
最佳答案
尝试将您的关联放在模型的定义中,例如
sequelize.define('users', {
id: DataTypes.Integer,
farmId: DataTypes.Integer
}, {
classMethods: {
associate: function(models) {
users.belongsTo(models.farms, {
foreignKey: 'farmId'
});
}
}
尝试使用自定义外键名称时,它对我有用。
关于sequelize.js - Sequelize Joins 不返回所需的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33597652/