Подтвердить что ты не робот

Sequelize в NodeJS: Внутренняя реализация JOIN Ошибка

У меня есть три таблицы подрядчиков, проекты и совлокальные для этих двух проектов projects_contractors и я создал модели и написал отношение, как показано ниже,

    Contractor.hasMany(Project, {joinTableName: 'projects_contractors'})
    Project.hasMany(Contractor, {joinTableName: 'projects_contractors'})

Я хочу получить доступ к этим проектам, основанным на Подрядчиках, означает внутренний JOIN.

Основной запрос:                выберите c.id, c.name, p.id, p.name от подрядчиков c internal join projects_contractors pc на c.id = pc.contractor_id проекты внутреннего соединения p на p.id = pc.project_id

Мне не удалось выполнить приведенный ниже код. "required" - это ключевое слово, которое используется для внутреннего JOIN, но не работает, если мы сохраняем.

     Contractor.findAll({ include: [Project, {required: false}]}).success(function(list){
       console.log("hi")
         res.send(204)
     })

Если он не будет требоваться, он создаст левый внешний JOIN для проектов и подрядчиков. Предложите мне пример с приведенным выше сенарио.

4b9b3361

Ответ 1

Правильный синтаксис:

Contractor.findAll({ include: [{model: Project, required: true}]})

Как правило, включенные params принимают либо модель, либо объект с параметром модели, либо необязательный параметр as/required/include/where params.