Sequelize关联查询,where影响全局的解决
需求背景
系统字段关联公司字段表,通过查询所有的系统字段然后关联查询指定的公司对应的字段。
问题代码
const sysField = ctx.model.SysDictionary;
const comField = ctx.model.CompanyDictionary;
sysField.hasOne(comField, { foreignKey: 'dictionary_id' });
const field = await sysField.findAll({
include: [{
model: comField,
where: { company_id: companyInfo.id },
}],
});
问题
查询出来的结果为空
解决问题
在include中增加一行代码 required: false,
正确代码
const sysField = ctx.model.SysDictionary;
const comField = ctx.model.CompanyDictionary;
sysField.hasOne(comField, { foreignKey: 'dictionary_id' });
const field = await sysField.findAll({
include: [{
model: comField,
where: { company_id: companyInfo.id },
required: false, // 解决问题的代码
}],
});