Почему этот запрос приводит к отсутствию в предложении?

В этом предложении постоянно отображается сообщение "ОШИБКА: отсутствует запись предложения FROM для таблицы"subid"в postgresql 10. Как это так?

UPDATE "io_S1"."tc_history"
  SET "c_TIME" = TT."c_TIME",
      "b_TIME_c"=TT."b_TIME_c",
      "b_TIME_COLLECTION"=TT."b_TIME_COLLECTION",
      "c_NOTE"=TT."c_NOTE",
      "b_TIME_TAXI"=TT."b_TIME_TAXI",
      "b_LOCATION_TAXI"=TT."b_LOCATION_TAXI",
      "ESTABLISHED_TIME"=TT."c_TIME"
FROM (
  SELECT "c_TIME","b_TIME_c","b_TIME_COLLECTION","c_NOTE","b_TIME_TAXI","b_LOCATION_TAXI","c_TIME" 
  FROM "io_TRACE"."PERSONAL_Tc_RECORD" TR
  WHERE TR."PERSONAL_SERIAL_ID" IN (SELECT "SUBJECT_ID" 
                                    FROM "io_COLLECTION"."COLLECTION_CONSENT_RECORD" AS SUBID 
                                    WHERE SUBID."SUBJECT_CITIZEN_ID" IN (SELECT "SUBJECT_CITIZEN_ID" 
                                                                         FROM "io_S1"."tc_history" AS TC))
) AS TT
WHERE "SUBJECT_CITIZEN_ID"=SUBID."SUBJECT_CITIZEN_ID";

2 ответа

Решение

Вы можете попробовать ниже

UPDATE "io_S1"."tc_history"
  SET "c_TIME" = TT."c_TIME",
      "b_TIME_c"=TT."b_TIME_c",
      "b_TIME_COLLECTION"=TT."b_TIME_COLLECTION",
      "c_NOTE"=TT."c_NOTE",
      "b_TIME_TAXI"=TT."b_TIME_TAXI",
      "b_LOCATION_TAXI"=TT."b_LOCATION_TAXI",
      "ESTABLISHED_TIME"=TT."c_TIME"
FROM (
  SELECT "c_TIME","b_TIME_c","b_TIME_COLLECTION","c_NOTE","b_TIME_TAXI","b_LOCATION_TAXI","c_TIME",
SUBID."SUBJECT_CITIZEN_ID"
FROM "io_TRACE"."PERSONAL_Tc_RECORD" TR inner join 
 "io_COLLECTION"."COLLECTION_CONSENT_RECORD" AS SUBID
on TR."PERSONAL_SERIAL_ID"=SUBID."SUBJECT_ID"
inner join "io_S1"."tc_history" AS TC
on TC."SUBJECT_CITIZEN_ID"=SUBID."SUBJECT_CITIZEN_ID"
) AS TT
WHERE "SUBJECT_CITIZEN_ID"=TT."SUBJECT_CITIZEN_ID";

Используемый псевдоним 'SUBID' находится вне области видимости, поэтому предложение from его не распознает. Лучше всего использовать обычное соглашение в качестве "TableName.ColumnName", поскольку две таблицы имеют одинаковое имя столбца.

Другие вопросы по тегам