我有一个表Patient,与另一个表Visits相关。一个患者可以进行多次访问,而一次访问与一名患者相关联。
访问通过Patient_uuid外键连接到患者
Visit.belongsTo(Patient, {
as: 'patient',
foreignKey: 'patient_uuid'
});
Patient.hasMany(Visit, {
foreignKey: 'patient_uuid'
});
“访问”还具有visit_status字段(“已安排”,“已完成”,“已取消”)。
当我获得所有患者的清单时,我想显示状态为“已完成”的访问次数。
我尝试这样做:
Patient.findAll({
attributes: [
'uuid', 'first_name', 'last_name', 'mobile_phone',
[Sequelize.fn("COUNT", Sequelize.col("visits.uuid")), "visitCount"]
],
include: [
{
model: Visit,
where: {
visit_status: 'COMPLETED'
},
attributes: []
}
],
order: [
['first_name', 'ASC']
]
});
我确实获得了患者列表,并且具有visitCount值,但是查询完全跳过了那些访问状态未完成的患者。
我想让所有的患者都具有visitCount,对于那些状态未完成的患者,我希望看到0。但是它会从结果中删除这些患者记录。
有什么方法可以将visitCount为0的患者记录包括在内?