Sequelize.js sequalize如何进行嵌套联接

Sequelize.js sequalize如何进行嵌套联接,sequelize.js,Sequelize.js,我有四种型号。即 图像 餐厅用品 餐厅 项目 images.belongsTo(餐厅项目) 这意味着我可以获得所有与图像相关的餐厅\u项目表格详细信息,如下所示 const all_approved_images = await db.images.findAll({ where: { status: "approved" }, include: ['res_item'] })

我有四种型号。即

  • 图像
  • 餐厅用品
  • 餐厅
  • 项目
  • images.belongsTo(餐厅项目)

    这意味着我可以获得所有与图像相关的餐厅\u项目表格详细信息,如下所示

    const all_approved_images = await db.images.findAll({
                where: {
                    status: "approved"
                },
                include: ['res_item']
            })
    
    但我想同时获得项目表和餐厅表的详细信息

    餐厅\u项目属于餐厅

    餐厅项目属于项目

    我试过这个

    const all_approved_images = await db.images.findAll({
                where: {
                    status: "approved"
                },
                include: ['res_item','res','item']
            })
    
    这不管用。说

    与别名“res”的关联不存在

    当然,它不存在于图像中 但它存在于餐厅的物品中

    应该有办法把所有这些联系起来


    如何实现这一点?

    现在,从嵌套级别获取数据:

    db.images.findAll({
        where: {
            status: "approved"
        },
        include: { 
            association: 'res_item' , // <---- First Level
            include : {
                association: 'res' , // <---- Second Level
                include : {
                    association: 'item' , // <---- Third Level
                }
            }
        }
    })
    
    db.images.findAll({
    其中:{
    状态:“已批准”
    },
    包括:{
    
    关联:“res_item”,//非常感谢你节省了时间。我还有一件事要问。=)如何筛选关联数据集。别名“res”提供了餐厅的所有详细信息,但我只需要res_name列。添加
    属性:[id',res_name]
    在这一行之后
    关联:“res”