You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sequelize嵌套include实现两次左外连接时第二层无数据如何解决

问题原因

你代码的核心错误是嵌套关联配置的字段拼写错误:你在session的include配置里把include错写为indlude,该拼写错误会导致Sequelize直接忽略第二层关联配置,因此不会查询session_extra_data表的数据。


修复方案

1. 修正查询代码的拼写错误

将查询部分的拼写错误修正即可,如果你需要第二层关联也走左外连接,也可以显式添加required: false配置:

call.findAll({
    limit: 5,   
    include: [{
        model: session,
        as: "sessions",
        // 修正拼写错误:indlude → include
        include:[{
            model: session_extra_data,
            as: "sessionExtraData",
            required: false
        }],
        required: false
    }],
}).then(data => {
    console.log("DATA", JSON.stringify(data));
})

2. 可选的关联配置优化(非必改,避免后续其他关联查询报错)

你当前的call.hasMany关联没有显式指定外键,和反向的belongsTo配置不匹配,建议补充外键配置:

call.hasMany(session,{
    as: "sessions",
    foreignKey: "call_id"
})

内容的提问来源于stack exchange,提问作者Tayyab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:18:00