我想在Sequelize这个查询:
const results = await WorkflowAssignation.findAndCountAll(
{
limit: limit,
offset: offset,
where:
{
userId: userIds,
status: status
},
include: [
{
model: WorkflowStepAssignation,
include: [
{ model: WorkflowStepAssignationHasUser, include: [ users ]}
]
},
{ model: users }
],
distinct: true,
order: [ [ 'createdAt', 'DESC'], [ { model: WorkflowStepAssignation, as: "steps" }, 'stepNumber', 'ASC' ] ]
});
问题是,如果WorkflowStepAssignationHasUser
表包含至少1条记录的值作为userid
的参数传递,我只需要返回WorkflowAssignation
。
如果我在这行{ model: WorkflowStepAssignationHasUser, include: [ users ]}
中使用where
,它仍然会返回所有WorkflowAssignation
,只有具有userId
值的步骤,这不是我想要的。
这就像我想返回所有的WorkflowAssignation
,包括所有的表,但只有在WorkflowStepAssignation -> WorkflowStepAssignationHasUser
中有参数中的用户。
关系:
WorkflowAssignation
有许多
WorkflowStepAssignation
有许多
WorkflowStepAssignationHasUser
(有userId
列)
addrequired: true
const results = await WorkflowAssignation.findAndCountAll(
{
limit: limit,
offset: offset,
where:
{
userId: userIds,
status: status
},
include: [
{
model: WorkflowStepAssignation,
include: [
{ model: WorkflowStepAssignationHasUser, include: [ users ]}
]
},
{ model: users }
],
distinct: true,
required: true,
order: [ [ 'createdAt', 'DESC'], [ { model:
WorkflowStepAssignation, as: "steps" }, 'stepNumber', 'ASC' ] ]
});