sequlize 多表查询关系怎么定义?
脑壳疼
现在有这几个表
课程表:id,coursename....
老师表:id,name...
班级表:id,name...
课程安排表:id,cid(课程表的id),tid(任课老师的id),classid(教学班级的id).....
我自己里理的时候,大概 课程表 老师表 班级表都与 课程安排表 是1对n的关系。
但是如果都写成hash many的时候,就无法联合这么多进行查询
我该这么定义他们的关系?
course.hasMany(syllabus,{foreignKey:'cid', targetKey:'id'});
teachers.hasMany(syllabus,{foreignKey:'tid', targetKey:'id'});
这是我起初定义的两个关系,
但是用
tables.course.findAll({
where:{
id:1
},
include:{
model:tables.syllabus,
},
}).then(result => {
response = responseModel(0,result[0]);
res.json(response);
});
查询是可以的,但是无法联合teachers表查询,会报 teachers和coures没有 关系错误。
我想得到的是这样的结果(暂时没加进班级表)
db.query(`select * from syllabus inner join course on syllabus.cid=course.id inner join teachers on syllabus.tid= teachers.id `).then(result => {
console.log(result[0]);
response = responseModel(0,result[0]);
res.json(response);
});
//sql语句
select * from syllabus inner join course on syllabus.cid=course.id inner join teachers on syllabus.tid= teachers.id
求指导用sequlize的方法怎么定义这些表和怎么执行联合查询?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
自问自答了,再看了一边sequlize的文档,好像明白了。