#sql #postgresql
#sql #postgresql
Вопрос:
У меня есть таблица A, таблица B, моя база данных выглядит примерно так: таблица A ключ1 ключ2 ключ5 ключ6
Таблица B ключ3 ключ4
Данные в A.key2 совпадают с данными в B.key3 и A.key5 имеют те же данные, что и B.ключ 4 Я хочу обновить ключ1 в таблице A до другой строки в таблице A на основе некоторого условия для ключа 6 таблицы A
Я хочу обновить некоторые строки в таблице A значениями, которые я получил бы, объединив таблицу A с таблицей B.
Я попытался выполнить запрос типа
UPDATE table A set a.key1 = c.key1 FROM A a JOIN B b ON a.key2 = b.key3 JOIN A c ON b.key4 = c.key5 WHERE A.key6 = somevalue;
sql выдает ошибку —
столбец a отношения A не существует
Комментарии:
1. Пожалуйста, предоставьте образцы данных, желаемые результаты, четкое объяснение того, что вы пытаетесь сделать, и единый тег базы данных. Я удалил несовместимые теги в качестве одолжения.
Ответ №1:
Это правильный синтаксис для Postgresql:
UPDATE A a
SET key1 = c.key1
FROM B b
JOIN A c ON b.key4 = c.key5
WHERE a.key2 = b.key3 AND a.key6 = somevalue;
Комментарии:
1. Отлично работал с небольшим изменением вместо A.key6 Мне пришлось использовать.key6