当我执行代码时,它会生成如下错误:

错误:缺少表"Rating"第4行的FROM-子句条目: Avg("Rating"."Rating")从"gig_Worker"被评为"avgRatings"A... ^SQL状态:42P01

角色:3366

SQL:好的,好的.

SELECT "gig_workers".*,
       "gig_types"."id" AS "gig_types.id",
       "gig_types"."name" AS "gig_types.name",
       "gig_types"."qualifications" AS "gig_types.qualifications",
       "gig_types"."experience" AS "gig_types.experience",
       "gig_types"."pay_rate" AS "gig_types.pay_rate",
       "gig_types"."dress_code" AS "gig_types.dress_code",
       "gig_types"."active" AS "gig_types.active",
       "gig_types"."createdAt" AS "gig_types.createdAt",
       "gig_types"."updatedAt" AS "gig_types.updatedAt",
       "gig_types->gig_worker_type_rel"."gigWorkerId" AS "gig_types.gig_worker_type_rel.gigWorkerId",
       "gig_types->gig_worker_type_rel"."gigTypeId" AS "gig_types.gig_worker_type_rel.gigTypeId",
       "gig_worker_metas"."id" AS "gig_worker_metas.id",
       "gig_worker_metas"."gig_worker_id" AS "gig_worker_metas.gig_worker_id",
       "gig_worker_metas"."key" AS "gig_worker_metas.key",
       "gig_worker_metas"."value" AS "gig_worker_metas.value",
       "gig_worker_metas"."createdAt" AS "gig_worker_metas.createdAt",
       "gig_worker_metas"."updatedAt" AS "gig_worker_metas.updatedAt",
       "profile_photos"."id" AS "profile_photos.id",
       "profile_photos"."user_id" AS "profile_photos.user_id",
       "profile_photos"."url" AS "profile_photos.url",
       "profile_photos"."type" AS "profile_photos.type",
       "profile_photos"."case_id" AS "profile_photos.case_id",
       "profile_photos"."createdAt" AS "profile_photos.createdAt",
       "profile_photos"."updatedAt" AS "profile_photos.updatedAt",
       "documents"."id" AS "documents.id",
       "documents"."user_id" AS "documents.user_id",
       "documents"."url" AS "documents.url",
       "documents"."type" AS "documents.type",
       "documents"."case_id" AS "documents.case_id",
       "documents"."createdAt" AS "documents.createdAt",
       "documents"."updatedAt" AS "documents.updatedAt",
       "referees"."id" AS "referees.id",
       "referees"."first_name" AS "referees.first_name",
       "referees"."last_name" AS "referees.last_name",
       "referees"."email" AS "referees.email",
       "referees"."phone" AS "referees.phone",
       "referees"."role" AS "referees.role",
       "referees"."job_venue" AS "referees.job_venue",
       "referees"."gig_worker_id" AS "referees.gig_worker_id",
       "referees"."assessment_given" AS "referees.assessment_given",
       "referees"."gig_worker_assessment" AS "referees.gig_worker_assessment",
       "referees"."score" AS "referees.score",
       "referees"."createdAt" AS "referees.createdAt",
       "referees"."updatedAt" AS "referees.updatedAt",
       "ratings"."id" AS "ratings.id",
       "ratings"."gig_id" AS "ratings.gig_id",
       "ratings"."business_id" AS "ratings.business_id",
       "ratings"."gig_worker_id" AS "ratings.gig_worker_id",
       "ratings"."type" AS "ratings.type",
       "ratings"."rating" AS "ratings.rating",
       "ratings"."evaluation" AS "ratings.evaluation",
       "ratings"."review" AS "ratings.review",
       "ratings"."assessment_given" AS "ratings.assessment_given",
       "ratings"."createdAt" AS "ratings.createdAt",
       "ratings"."updatedAt" AS "ratings.updatedAt"
FROM
  (SELECT "gig_workers"."id",
          "gig_workers"."user_id",
          "gig_workers"."first_name",
          "gig_workers"."last_name",
          "gig_workers"."address",
          "gig_workers"."contact_number",
          "gig_workers"."profile_picture",
          "gig_workers"."work_rights",
          "gig_workers"."status",
          "gig_workers"."verified",
          "gig_workers"."available_time",
          "gig_workers"."license",
          "gig_workers"."venue_experience",
          "gig_workers"."certification",
          "gig_workers"."language",
          "gig_workers"."latitude",
          "gig_workers"."longitude",
          "gig_workers"."radius",
          "gig_workers"."createdAt",
          "gig_workers"."updatedAt",
          AVG("ratings"."rating") AS "avgRatings"
   FROM "gig_workers" AS "gig_workers"
   GROUP BY "gig_workers"."id"
   LIMIT 30
   OFFSET 0) AS "gig_workers"
LEFT OUTER JOIN ("gig_worker_type_rels" AS "gig_types->gig_worker_type_rel"
                 INNER JOIN "gig_types" AS "gig_types" ON "gig_types"."id" = "gig_types->gig_worker_type_rel"."gigTypeId") ON "gig_workers"."id" = "gig_types->gig_worker_type_rel"."gigWorkerId"
LEFT OUTER JOIN "gig_worker_metas" AS "gig_worker_metas" ON "gig_workers"."id" = "gig_worker_metas"."gig_worker_id"
LEFT OUTER JOIN "profile_photos" AS "profile_photos" ON "gig_workers"."id" = "profile_photos"."case_id"
AND "profile_photos"."type" = 'profile'
LEFT OUTER JOIN "documents" AS "documents" ON "gig_workers"."id" = "documents"."case_id"
AND "documents"."type" = 'profile'
LEFT OUTER JOIN "referees" AS "referees" ON "gig_workers"."id" = "referees"."gig_worker_id"
LEFT OUTER JOIN "ratings" AS "ratings" ON "gig_workers"."id" = "ratings"."gig_worker_id";

推荐答案

问题出在此子查询中.它 Select 了AVG("ratings"."rating"),但在其FROM子句中没有提到ratings关系:

    SELECT
          "gig_workers"."id",
          "gig_workers"."user_id",
          "gig_workers"."first_name",
          "gig_workers"."last_name",
          "gig_workers"."address",
          "gig_workers"."contact_number",
          "gig_workers"."profile_picture",
          "gig_workers"."work_rights",
          "gig_workers"."status",
          "gig_workers"."verified",
          "gig_workers"."available_time",
          "gig_workers"."license",
          "gig_workers"."venue_experience",
          "gig_workers"."certification",
          "gig_workers"."language",
          "gig_workers"."latitude",
          "gig_workers"."longitude",
          "gig_workers"."radius",
          "gig_workers"."createdAt",
          "gig_workers"."updatedAt",
          AVG("ratings"."rating") AS "avgRatings"
   FROM "gig_workers" AS "gig_workers"
   GROUP BY "gig_workers"."id"
   LIMIT 30
   OFFSET 0

我强烈推荐使用像https://sqlformat.org/这样的格式化工具来格式化您的SQL查询.使用它们将容易得多,错误消息也更有意义,因为错误消息中提到的行包含的代码更少.

Sql相关问答推荐

判断时间之间是否有时间

Oracle SQL对列进行汇总并在列表底部显示总计

R中对Arrow duckdb工作流的SQL查询

如何使用WSO2将空值传递给我的SQL Server存储过程?

Access VBA SQL命令INSERT FOR MULTIME VALUE

使用Kotlin Exposed SQL DSL Select 多个值并排序

如何向 mariadb 添加外键?

如何将 START 和 END 日期之间的日期差异作为 SQL 中的单独列获取

在 PostgreSQL 中,如何让多个判断约束引用相同的值数组?

Oracle 21c 中的递归查询回顾过go 3 周

在SQL中实现表格数据透视类型报表

在where语句中使用CTE非常缓慢

删除重复记录但保留最新的SQL查询

获取记录的上一个值,并将其与当前值一起显示

如何在插入时将字符串'03-January-2023'转换为日期时间

自动生成计算频率的列

如何获得上个月和下个月之间的销售额差异

Postgres 条件求和函数

具有关联统计信息 N+1 的 Rails 6 索引资源?

在 sql 中合并系列以删除重复项