Sequelize OR 子句与多个模型

Sequelize OR clause with multiple models

我正在寻找一种使用 SequelizeJS 编写查询的方法,其中包含引用多个模型 (table) 的 OR 子句。

我希望 sql 最终看起来像这样:

select *
from Department
inner join Office on Department.OfficeId = Office.Id
where Office.Name like 'spokane%'
or Department.Name like 'spokane%'

我看到过类似的关于过滤连接 table 的问题,答案如下所示。

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 and Office.name like 'spokane%'
where Department.name like 'spokane%'

如有任何帮助,我们将不胜感激。

options.where = {
  $or: [
    sequelize.where(sequelize.col('office.name'), { $like: 'foo'}),
    sequelize.where(sequelize.col('department.name'), { $like: 'foo'})
  ]
}