sql >> Database >  >> RDS >> Mysql

Hoe voeg ik voorwaarden toe in sub-sub onderliggende modellen in sequelize die van invloed zouden moeten zijn op mijn bovenliggende model in findAndCountAll?

Oké, dus ik bedacht de oplossing, maar voegde een onbewerkte query toe met Joins waarin ik mijn vereiste voorwaarden toevoegde waar ik maar nodig had en id's van het hoofdmodel ophaalde. Vervolgens heb ik de gegevens opgehaald met sequelize door die id's toe te voegen aan de where-clausule. Mijn code ziet er nu zo uit.

const { limit, offset } = dbHelpers.GetPagination(
    req.query.limit,
    req.query.offset
);

let querySting = "(SELECT count(DISTINCT p.id) FROM ModelA p " +
    "JOIN ModelB cp ON cp.pId = p.id " +
    "JOIN ModelC cs ON cs.cpId = cp.id " +
    "JOIN ModelD ms ON ms.csId = cs.id " +
    "LEFT JOIN ModelE sa ON sa.msId = ms.id " +
    "LEFT JOIN ModelF pp ON pp.msId = ms.id " +
    "LEFT JOIN ModelG sta ON sta.ppId = pp.id " +
    "LEFT JOIN ModelH ol ON ol.cdId = cd.id " +
    "WHERE "   //you can add your conditions here
    + " ORDER BY p.id desc LIMIT  " + offset + ",  " + limit + ")"


const rawQuery = await models.sequelize.query(querySting,
    { type: QueryTypes.SELECT })
const Ids = rawQuery.map(result => result.id)

const results = await models.ModelA.findAndCountAll({
    where: {
        id: Ids
    },
    include: [
        {
            model: models.ModelB,
            as: "ModelB",
            include: [
                {
                    model: models.ModelC,
                    separate: true,
                },
                {
                    model: models.ModelD,
                    separate: true,
                    include: [
                        {
                            model: models.ModelE,
                            separate: true,
                                            {
                            model: models.ModelF,
                            separate: true,
                        },
                    ],
                },
            ],
        },
    ],
},
    {
        model: models.ModelG,
        include: [
            {
                model: models.ModelH,
                as: "ModelH",
            },
        ],
    },
                ],
            });



  1. het combineren van mysql AND OR-query's in Codeigniter

  2. Kan niet inloggen met aangemaakte gebruiker in mysql

  3. Hoe PostgreSQL Server op Mac OS X te starten via Homebrew

  4. SQL-Server en MySQL-interoperabiliteit?