Sequelize Joins没有返回所需的结果

时间:2015-11-08 18:47:04

标签: sequelize.js

尝试使用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);
});

users表的字段为' farmId',farm表具有相同的字段,我正在尝试使用它来匹配它们,因为我需要特定的ID用于农场稍后的。如果我将用户更新为数学' id'然后它有效,但不是'farmId'这就是我需要的方式。

农场也将有其他联接到farm_area和crop_types,可能更晚,仍然可以解决所有逻辑。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试将您的关联放在模型的定义中,例如

sequelize.define('users', {
  id: DataTypes.Integer,
  farmId: DataTypes.Integer
}, {
  classMethods: {
    associate: function(models) {
      users.belongsTo(models.farms, {
        foreignKey: 'farmId'
      });
  }
}

在尝试使用自定义外键名称时,它对我有用。