最近对sequelize操作mysql比较感兴趣,所以研究了一下,但是在关联查询时候卡住了
就是hasOne和belongsTo的连表查询,我一开始认为是这两种的查询方式都是一模一杨的,都是目标模型.findAll([
model:源模型
])
在我使用belongsTo连接时,成功的实现了查询,然后我反思了一下,假如hasOne和belongsTo的连表查询写法都是一模一样的,那么作者为什么要这么设计两种方式呢,这不是浪费代码吗,然后我尝试了一下hasOne连接的查询,再次使用
目标模型.findAll([
{
include:{
model:源模型
}
}
]) // 报异常,查询失败
我仔细看一遍代码也没发现问题,搜索了很久也没找到为什么,最后我突然想了一下既然hasOne和belongsTo定义都是 源模型.hasOne(目标模型) 或 源模型.belongsTo(目标模型)
那么这个连表查询也是这样的,总是 源模型.findAll([
{
include:{
model:目标模型
}
}
])
果然查询成功了,哈哈!