Sequelize.js 具有多个模型的Sequelize或子句
我正在寻找一种方法来编写一个查询,其中包含一个引用多个模型(表)的OR子句 我希望sql最终看起来像这样:Sequelize.js 具有多个模型的Sequelize或子句,sequelize.js,Sequelize.js,我正在寻找一种方法来编写一个查询,其中包含一个引用多个模型(表)的OR子句 我希望sql最终看起来像这样: select * from Department inner join Office on Department.OfficeId = Office.Id where Office.Name like 'spokane%' or Department.Name like 'spokane%' select * from Department inner join Office on De
select *
from Department
inner join Office on Department.OfficeId = Office.Id
where Office.Name like 'spokane%'
or Department.Name like 'spokane%'
select *
from Department
inner join Office on Department.OfficeId = Office.Id and Office.name like 'spokane%'
where Department.name like 'spokane%'
我见过关于过滤联接表的类似问题,答案如下所示
options.include = [{
model: offices.model,
where: {
name: {
$like: 'spokane%'
}
}
}];
options.where = Sequelize.or(
{
'name': {
$like: 'spokane%'
}
});
departments.findAndCount(options);
但是,这不会生成正确的sql
它吐出这样的东西:
select *
from Department
inner join Office on Department.OfficeId = Office.Id
where Office.Name like 'spokane%'
or Department.Name like 'spokane%'
select *
from Department
inner join Office on Department.OfficeId = Office.Id and Office.name like 'spokane%'
where Department.name like 'spokane%'
任何帮助都将不胜感激。谢谢!我不得不修改include以使其成为必需的,但后来它工作得很好
{model:offices.model,required:true}
谢谢@JuanitoCROM,required
选项帮助了我
options.where = {
$or: [
sequelize.where(sequelize.col('office.name'), { $like: 'foo'}),
sequelize.where(sequelize.col('department.name'), { $like: 'foo'})
]
}