我有这些 table 。患者与用户相连,而 userAddress 与用户相连。
我想在 Sequelize 中进行查询,在给定患者 ID 的情况下,我会得到正确的 userAddress 信息。我可以在两个查询中完成(首先获取 userId,然后获取 userAddress),但是如何使用 Sequelize 仅在一个查询中完成?从我所见,find 方法从一张表开始,我只能包含与该表相连的表。我错过了什么吗?我该怎么做?
最佳答案
您可以使用以下查询在 sequelize 中轻松实现此目的:
Patient.findAll({
where: { id: 'ABC_123' },
include: {
model: User,
include: [ UserAddress ]
}
});
但是,要使上述查询起作用,您的 Patient 、 User 和 UserAddress 模型应该正确关联(即在两个方向上),如下所示:
用户和患者之间:
Patient.belongsTo(models.User);
User.hasMany(models.Patient);
用户和用户地址之间:
UserAddress.belongsTo(models.User);
User.hasMany(models.UserAddress);
关于sequelize.js - node.js - Sequelize 查询表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43419226/