在 relation.attribute 等于
Sequelize where relation.attribute is equal to
我的定义如下:
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'});
现在你可以从我的(失败的)尝试中看到我正在尝试 select academy.division_id = 19.
的团队
然而这不起作用
我也试过以下方法:
Team.findAll({include: [{all: true}], where: {division_id: 19 }}, {})
.ok(onSuccess).error(onError);
遗憾的是,这产生了以下结果 sql:
where academy_team.division_id = 19
如果需要 where 条件,则不能使用 include all
Team.findAll({
include: [
{ model: academy, where: { division_id: 19 }
]
});
我的定义如下:
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'});
现在你可以从我的(失败的)尝试中看到我正在尝试 select academy.division_id = 19.
的团队然而这不起作用
我也试过以下方法:
Team.findAll({include: [{all: true}], where: {division_id: 19 }}, {})
.ok(onSuccess).error(onError);
遗憾的是,这产生了以下结果 sql:
where academy_team.division_id = 19
如果需要 where 条件,则不能使用 include all
Team.findAll({
include: [
{ model: academy, where: { division_id: 19 }
]
});