Postgresql Sequelize关键字搜索,包含表上的子句条目缺少包含和限制原因

Postgresql Sequelize关键字搜索,包含表上的子句条目缺少包含和限制原因,postgresql,sequelize.js,Postgresql,Sequelize.js,我正在对Post的列以及相关联的表列实现一个通用关键字搜索 帖子属于分类。 波斯特有许多相似之处 当我通过组合where.$or、limit/offset和order尝试此筛选器时,我从表“category”的子句条目中得到一个错误 我认为这是因为sequelize似乎只在主查询上应用所包含模型的外部联接,而不是用于筛选/限制的内部查询,但不确定如何解决这个问题。如果您有任何解决方案或建议,我将不胜感激 js 记录sql。注释行是由我添加的,不是由sequelize添加的 SELECT

我正在对Post的列以及相关联的表列实现一个通用关键字搜索

帖子属于分类。 波斯特有许多相似之处

当我通过组合where.$or、limit/offset和order尝试此筛选器时,我从表“category”的子句条目中得到一个错误

我认为这是因为sequelize似乎只在主查询上应用所包含模型的外部联接,而不是用于筛选/限制的内部查询,但不确定如何解决这个问题。如果您有任何解决方案或建议,我将不胜感激

js

记录sql。注释行是由我添加的,不是由sequelize添加的

SELECT          "post".*, 
                "likes"."id"           AS "likes.id", 
                "likes"."userId"       AS "likes.userId", 
                "likes"."postId"       AS "likes.postId", 
                "likes"."createdAt"    AS "likes.createdAt", 
                "likes"."updatedAt"    AS "likes.updatedAt", 
                "likes"."deletedAt"    AS "likes.deletedAt", 
                "category"."id"        AS "category.id", 
                "category"."label"     AS "category.label", 
                "category"."createdAt" AS "category.createdAt", 
                "category"."updatedAt" AS "category.updatedAt", 
                "category"."deletedAt" AS "category.deletedAt" 
FROM            ( 
                         SELECT   "post"."id", 
                                  "post"."title", 
                                  "post"."content", 
                                  "post"."createdAt", 
                                  "post"."updatedAt" 
                         FROM     "posts" AS "post" 
// adding left outer join for category here seems to solve the problem. ex)
//                       LEFT OUTER JOIN "categories" AS "category" 
//                       ON              "post"."categoryId" = "category"."id" 
                         WHERE    ( 
                                           "post"."title" ilike '%english%' 
                                  OR       "category"."label" ilike '%english%') 
                         ORDER BY "post"."id" DESC limit 25 offset 0) AS "post" 
LEFT OUTER JOIN "likes"                                               AS "likes" 
ON              "post"."id" = "likes"."postId" 
LEFT OUTER JOIN "categories" AS "category" 
ON              "post"."categoryId" = "category"."id" 
ORDER BY        "post"."id" DESC;
我正在使用 续集6.3.5 nodejs10.22.0

SELECT          "post".*, 
                "likes"."id"           AS "likes.id", 
                "likes"."userId"       AS "likes.userId", 
                "likes"."postId"       AS "likes.postId", 
                "likes"."createdAt"    AS "likes.createdAt", 
                "likes"."updatedAt"    AS "likes.updatedAt", 
                "likes"."deletedAt"    AS "likes.deletedAt", 
                "category"."id"        AS "category.id", 
                "category"."label"     AS "category.label", 
                "category"."createdAt" AS "category.createdAt", 
                "category"."updatedAt" AS "category.updatedAt", 
                "category"."deletedAt" AS "category.deletedAt" 
FROM            ( 
                         SELECT   "post"."id", 
                                  "post"."title", 
                                  "post"."content", 
                                  "post"."createdAt", 
                                  "post"."updatedAt" 
                         FROM     "posts" AS "post" 
// adding left outer join for category here seems to solve the problem. ex)
//                       LEFT OUTER JOIN "categories" AS "category" 
//                       ON              "post"."categoryId" = "category"."id" 
                         WHERE    ( 
                                           "post"."title" ilike '%english%' 
                                  OR       "category"."label" ilike '%english%') 
                         ORDER BY "post"."id" DESC limit 25 offset 0) AS "post" 
LEFT OUTER JOIN "likes"                                               AS "likes" 
ON              "post"."id" = "likes"."postId" 
LEFT OUTER JOIN "categories" AS "category" 
ON              "post"."categoryId" = "category"."id" 
ORDER BY        "post"."id" DESC;