【发布时间】:2017-11-09 18:40:21
【问题描述】:
我有 3 个名为项目、工作区、视图的表,关联是
projects.hasMany(workspace);
workspace.belongsTo(projects);
workspace.hasMany(views);
views.belongsTo(workspace);
我需要加入这 3 个表以获得以下查询的输出
select * from projects pro join workspace wrk on pro.id= wrk.project_id
join views on wrk.id = views.workspace_id
我尝试了关联
views.belongsTo(projects, { through: workspace.associations.projects });
以下是代码:
View.findAll({
include: [
{model: db.workspaces, required: true},
{model: db.projects, required: true}
]
});
但它会生成查询
SELECT *
FROM "views" AS "views"
INNER JOIN "workspaces" AS "workspace" ON "views"."workspace_id" = "workspace"."id"
INNER JOIN "projects" AS "project" ON "views"."project_id" = "project"."id"
views表中不存在project_id,只能通过workspace关联views,如何实现。
【问题讨论】:
标签: node.js sequelize.js