我有以下定义:
var Team = sequelize.define('academy_team', {
id: DataTypes.INTEGER,
name: DataTypes.STRING,
academy_id: DataTypes.INTEGER,
is_complete: DataTypes.INTEGER,
started: DataTypes.INTEGER
}, {
freezeTableName: true,
instanceMethods: {
startedTeams: function(onSuccess, onError) {
Team.findAll({
include: [{
all: true
}],
where: {
model: academy,
division_id: 19
}
}, {})
.ok(onSuccess).error(onError);
}
}
});
academy = sequelize.define('academy', {
id: DataTypes.INTEGER,
name: DataTypes.STRING,
organization_id: DataTypes.INTEGER,
division_id: DataTypes.INTEGER,
status_id: DataTypes.INTEGER
}, {
freezeTableName: true,
instanceMethods: {}
});
具有以下关系:
Team.belongsTo(academy, {foreignKey: 'academy_id'});
现在你可以从我的(失败的)尝试中看到我正在尝试选择academy.division_id = 19的球队。
然而,这不起作用
我也尝试了以下内容:
Team.findAll({include: [{all: true}], where: {division_id: 19 }}, {})
.ok(onSuccess).error(onError);
遗憾的是,这产生了以下sql:
where academy_team.division_id = 19
答案 0 :(得分:1)
如果您需要条件
,则无法使用全部包含Team.findAll({
include: [
{ model: academy, where: { division_id: 19 }
]
});