База данных PostgreSQL – ошибка внутреннего входящего запроса

С помощью этого сообщества я смог создать запрос, используя внутреннее соединение, которое, как я думал, будет работать для того, что я пытаюсь сделать. К сожалению, когда я попытался выполнить запрос, указанный ниже, я получил следующую ошибку:

ОШИБКА: имя таблицы «bue» указано более одного раза


Из того, что я читал в Google, некоторые люди говорили, что «FROM bue» не требуется, но когда я удалил это, я получил еще одну ошибку, найденную ниже:

ОШИБКА: синтаксическая ошибка в или рядом с «INNER» на символе 98


Я очень благодарен вам за помощь в устранении этой проблемы. Огромное спасибо.


Запрос:

UPDATE bue SET rgn_no = chapterassociation.rgn_no, chp_cd = chapterassociation.chp_cd FROM bue INNER JOIN chapterassociation ON bue.work_state = chapterassociation.work_state AND bue.bgu_cd = chapterassociation.bgu_cd WHERE bue.mbr_no IS NULL AND bue.chp_cd IS NULL 

В PostgreSQL указание таблицы, подлежащей обновлению, должно выполняться только в предложении UPDATE, например UPDATE bue . Предложение FROM предназначено только для дополнительных таблиц, указанных в запросе. (Если вы делали самостоятельное присоединение к bue , вы бы упомянули его снова в предложении FROM, но вы не в этом случае.)

Вторая ошибка, которую вы получаете, скорее всего, просто простая синтаксическая ошибка. Другая сложная вещь заключается в том, что синтаксис JOIN / ON не подходит в предложении FROM, поэтому вам нужно переместить условия соединения в предложение WHERE. Попробуйте что-нибудь вроде:

 UPDATE bue SET rgn_no = chapterassociation.rgn_no, chp_cd = chapterassociation.chp_cd FROM chapterassociation WHERE bue.mbr_no IS NULL AND bue.chp_cd IS NULL AND bue.work_state = chapterassociation.work_state AND bue.bgu_cd = chapterassociation.bgu_cd 

См. http://www.postgresql.org/docs/current/interactive/sql-update.html .

(NB По крайней мере, я не знаю, как включить JOIN / ON в инструкцию UPDATE … Я мог бы что-то упустить).