尝试编写依赖于两个不同联接表的“或”查询

时间:2019-05-11 23:05:13

标签: javascript sql node.js postgresql sequelize.js

我需要使用Sequelize在PostgreSQL数据库中选择一些行,其中id在连接表1中存在,或者在连接表2中存在。

使用Sequelize,我尝试查询“ include”内部的联接表,但意识到在某些情况下,如果不存在ID,则该表将从结果行中排除,这不是我想要的。我认为我想要的是以下内容:

Model.findAll({
  include: [ Association1, Association2 ],
  where: { [Op.or]: [
    { 'Association1.ModelId': id },
    { 'Association2.ModelId': id }
  ]}
})

该代码实际上产生一个错误,指出Model.Assocation1.ModelId不存在。我不确定如何完成上述代码示例。

1 个答案:

答案 0 :(得分:0)

在纯SQL中,这将是OUTER JOIN情况。

在Sequelize中,您可能需要添加

required: false

…输入您的参数。