根据条件在哪里获得关联数

时间:2019-05-28 07:18:24

标签: mysql sequelize.js

我有一个表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的患者记录包括在内?

0 个答案:

没有答案