我有一個場景,我試圖查詢父表(文檔)與兩個相關聯的表(參考&用戶),這兩個表彼此沒有關係,但與父表。在SQL中,這個查詢看起來像這樣正確輸出我要尋找的數據:與兩個表的序列化嵌套關聯
select *
from `document`
left join `user`
on `document`.`user_id` = `user`.`user_id`
left join `reference`
on `document`.`reference_id` = `reference`.`reference_id`
where `user`.`organization_id` = 1;
然而,嵌套協會在分層爲了把爲了使查詢工作。由於嵌套關聯不相互關聯,我得到一個關聯錯誤。我怎樣才能避免這個錯誤? required: false
會對此有影響嗎?
models.Document.findAll({
order: 'documentDate DESC',
include: [{
model: models.User,
where: { organizationId: req.user.organizationId },
include: [{
model: models.Reference,
}]
}],
})
錯誤:
Unhandled rejection Error: reference is not associated to user!
協會:
Document
:
associate: function(db) {
Document.belongsTo(db.User, {foreignKey: 'user_id'}),
Document.belongsTo(db.Reference, { foreignKey: 'reference_id'});;
}
Reference
:
associate: function(db){
Reference.hasMany(db.Document, { foreignKey: 'reference_id' });
}
如果我只是連鎖查詢呢?
它看起來像指定'underscored:true',但使用cameCase名稱:'organization_id'對'organizationId'例如。 – doublesharp