私は、お互いに関係のない2つの関連するテーブル(参照&ユーザ)を持つ親テーブル(ドキュメント)をクエリしようとしていますが、親テーブルこのように正しくは私が探していますデータ出力のようなSQLでは、このクエリはなります2つのテーブルでネストされた関連付けを続ける
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