Node.js 间接联想的后遗症

Node.js 间接联想的后遗症,node.js,sequelize.js,Node.js,Sequelize.js,我有3个表,分别命名为projects、workspace、views和associations projects.hasMany(工作区); 工作空间.归属(项目); 工作空间。有许多(视图); 视图.belongsTo(工作区); 我需要连接这3个表以获得以下查询的输出 select*from projects pro join workspace wrk on pro.id=wrk.project\u id 连接wrk.id=views.workspace\u id上的视图 我试着联系

我有3个表,分别命名为projects、workspace、views和associations

projects.hasMany(工作区);
工作空间.归属(项目);
工作空间。有许多(视图);
视图.belongsTo(工作区);
我需要连接这3个表以获得以下查询的输出

select*from projects pro join workspace wrk on pro.id=wrk.project\u id
连接wrk.id=views.workspace\u id上的视图
我试着联系

views.belongsTo(项目,{通过:workspace.associations.projects});
代码如下:

View.findAll({
包括:[
{model:db.workspace,必需:true},
{model:db.projects,必需:true}
]
});
但它会生成查询

选择*
从“视图”变为“视图”
在“视图”中将“工作区”内部联接为“工作区”。“工作区id”=“工作区”。“id”
在“视图”中将“项目”内部联接为“项目”。“项目id”=“项目”。“id”
视图表中不存在项目id。它仅通过工作区关联视图。如何实现此目标。

请尝试以下操作

Project.hasMany(Workspace,{foreignKey : 'project_id'}); 
Workspace.belongsTo(Project);

Workspace.hasMany(views,{foreignKey: 'workspace_id'});
View.belongsTo(Workspace);

Workspace.findAll({
   include: [
     {model: View, required: true},
     {model: Project, required: true}
   ]
});

嗨,我试试这个逻辑,告诉我它是否能给你想要的结果。