Почему этот запрос приводит к отсутствию в предложении? - PullRequest
0 голосов
/ 27 ноября 2018

В этом предложении постоянно отображается сообщение «ОШИБКА: отсутствует запись предложения 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 ]

0 голосов
/ 27 ноября 2018

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

0 голосов
/ 27 ноября 2018

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

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";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...