【发布时间】:2019-07-08 07:31:44
【问题描述】:
我有 3 个表,其关联如下。
STUDENTS.hasMany(REPORTS);
REPORTS.belongsTo(STUDENTS);
REPORTS.hasMany(TASKS);
TASKS.belongsTo(REPORTS);
任务表
| id | name | report_id |
|----|--------|-------------|
| 01 | taskA | 01 |
| 02 | taskB | 02 |
| 03 | taskC | 03 |
报告表
| id | student_id |
|----|------------|
| 01 | 01 |
| 02 | 02 |
| 03 | 01 |
学生桌
| id | name |
|----|------|
| 01 | tom |
| 02 | jim |
我正在尝试创建如下所示的输出。在这里,我有学生的姓名以及他们完成的任务数量(通过报告表链接)。
| student| no_of_tasks |
|--------|-------------|
| tom | 01 |
| jim | 02 |
以下是我尝试使用 sequelize 的查询,但它似乎不起作用。
STUDENTS.findAll({
attributes: [
'name',
],
include: [
{
model: REPORTS,
attributes: [
[sequelize.fn('COUNT', sequelize.col('tasks.id')), 'no_of_tasks'],
],
include: [
{
model: TASKS,
attributes: [],
},
],
},
],
raw: true,
nest: true,
});
我知道可以使用原始 sql 查询获得此解决方案 但我希望使用 Sequelize js ORM 找到答案。
【问题讨论】:
-
不确定这是否能解决您的问题,但我认为您应该通过
nested: true而不是nest: true
标签: mysql node.js express sequelize.js