sequelize的关联查询

1,318 阅读1分钟

最近对sequelize操作mysql比较感兴趣,所以研究了一下,但是在关联查询时候卡住了

就是hasOne和belongsTo的连表查询,我一开始认为是这两种的查询方式都是一模一杨的,都是目标模型.findAll([

model:源模型

])

在我使用belongsTo连接时,成功的实现了查询,然后我反思了一下,假如hasOne和belongsTo的连表查询写法都是一模一样的,那么作者为什么要这么设计两种方式呢,这不是浪费代码吗,然后我尝试了一下hasOne连接的查询,再次使用

目标模型.findAll([

{

include:{

model:源模型

}

}

]) // 报异常,查询失败

我仔细看一遍代码也没发现问题,搜索了很久也没找到为什么,最后我突然想了一下既然hasOne和belongsTo定义都是 源模型.hasOne(目标模型)  或 源模型.belongsTo(目标模型)

那么这个连表查询也是这样的,总是 源模型.findAll([

{

include:{

model:目标模型

}

}

])

果然查询成功了,哈哈!