Отношения между моделями таковы:
У меня есть три таблицы Staff
, Modules
, Tests
- Модули персонала (многие ко многим)
- Тесты модулей (один ко многим)
Это мой необработанный запрос:
select *,count(distinct tests.testId),count(distinct staffModules.id) from modules
left join tests on modules.moduleId = tests.moduleModuleId
left join staffModules on modules.moduleId = staffModules.moduleModuleId
group by modules.moduleId
LIMIT 5 OFFSET 0
Я пытался реплицировать его с помощью Sequelize ORM, но это неt работа:
let resultModules = await modules.findAll({
attributes: ['moduleName'],
include: [{
model: staff,
attributes:['staffName'],
through: { attributes: [[sequelize.fn('COUNT', sequelize.col('staffStaffId')), 'staffCount']] },
},
{
model: tests,
attributes:['testsTaken','testsCompleted','testName'],
}
],
limit:parseInt(limit),offset:parseInt(offset),
});
Спасибо за ваше время.