Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để thêm các điều kiện trong các mô hình con phụ trong phần tiếp theo, điều này sẽ ảnh hưởng đến Mô hình mẹ của tôi trong findAndCountAll?

Được rồi, vì vậy tôi đã tìm ra giải pháp nhưng thêm một truy vấn thô với Tham gia, trong đó tôi đã thêm các điều kiện bắt buộc của mình vào bất cứ nơi nào tôi cần và tìm nạp id của mô hình chính. Sau đó, tôi tìm nạp dữ liệu bằng cách sử dụng phần tiếp theo thêm các id đó vào mệnh đề where. Mã của tôi bây giờ trông giống như thế này.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt khi sử dụng cơ sở dữ liệu XML và MySQL ở đâu? Tôi nên sử dụng cái nào?

  2. Chèn dữ liệu từ một bảng khác bằng một vòng lặp trong mysql

  3. mysql_upgrade không thành công - bảng innodb không tồn tại?

  4. Cách thêm Ràng buộc NOT NULL trong MySQL

  5. Lỗi chết trong PHP mysql_num_rows