Sequelize: where with include 基于父列
Sequelize: where with include based on parent's column
我有两个模型,A 和 B。
A.hasMany(B, {
foreignKey: "A.id",
as: "A.id",
});
B.belongsTo(A, {
foreignKey: "B.id",
as: "B.id",
});
我想要来自 table A 的所有数据和所有相关数据(来自 table B),除非 A.isActive = false
(在这种情况下我只需要来自 table A)。我找不到任何方法来使用 sequelize 来做到这一点。请帮忙
试试这个:
A.findAll({
include: [
{
model: B
}
],
where: { isActive: true }
});
您可以尝试带条件的 LEFT JOIN。
A.findAll({
include: [{
model: B,
required: false,
where: {
'$A.isActive$': true
}
}]
})
我有两个模型,A 和 B。
A.hasMany(B, {
foreignKey: "A.id",
as: "A.id",
});
B.belongsTo(A, {
foreignKey: "B.id",
as: "B.id",
});
我想要来自 table A 的所有数据和所有相关数据(来自 table B),除非 A.isActive = false
(在这种情况下我只需要来自 table A)。我找不到任何方法来使用 sequelize 来做到这一点。请帮忙
试试这个:
A.findAll({
include: [
{
model: B
}
],
where: { isActive: true }
});
您可以尝试带条件的 LEFT JOIN。
A.findAll({
include: [{
model: B,
required: false,
where: {
'$A.isActive$': true
}
}]
})