私には3つのテーブル請負業者、プロジェクトがあり、これら2つを結合できるのはprojects_contractorsで、モデルを作成して次のような関係を作成しました。
Contractor.hasMany(Project, {joinTableName: 'projects_contractors'})
Project.hasMany(Contractor, {joinTableName: 'projects_contractors'})
この請負業者ベースのプロジェクトにアクセスしたいのは、内部結合を意味します。
コアクエリ:請負業者からc.id、c.name、p.id、p.nameを選択しますc内部結合projects_contractors pc on c.id = pc.contractor_id内部結合プロジェクトpon p.id = pc.project_id
以下のコードの実装に失敗しました。 「必須」は、内部JOINに使用されたキーワードですが、保持すると機能しません。
Contractor.findAll({ include: [Project, {required: false}]}).success(function(list){
console.log("hi")
res.send(204)
})
必要とされない場合は、プロジェクトと請負業者に左外部JOINが作成されます。上記のシナリオのサンプル例を提案してください。
正しい構文は次のとおりです。
Contractor.findAll({ include: [{model: Project, required: true}]})
通常、インクルードパラメーターは、モデル、またはモデルパラメーターとオプションのas/required/include/whereパラメーターを持つオブジェクトのいずれかを取ります。