ERROR: column reference "page_seq" is ambiguous

таблица

CREATE TABLE envelope
(
    id      int,
    user_id int
);
CREATE TABLE docs
(
    id_num   int,
    page_seq int,
    doc_text varchar(100)
);

INSERT INTO envelope
VALUES (1, 1),
       (2, 2),
       (3, 3);

INSERT INTO docs(id_num, page_seq)
VALUES (1, 5),
       (2, 6),
       (null, 0);

Запрос на обновление таблицы

UPDATE docs
SET doc_text = d.page_seq
FROM docs d
         INNER JOIN envelope ON envelope.id = d.id_num
WHERE EXISTS(
              SELECT 1
              FROM docs
              WHERE id = envelope.id and d.id_num is not null
          ) ;

результат

введите сюда описание изображения

Результат не верный, почему-то значение из одной строки, обновило и другие, хотя они и не соответствуют ????

Должно быть

(1, 5, 5)

(2, 6, 6)

(null, 0, null) - не должна обновляться

Обновление

Выше предложенное решение взято из задач и ответов (SQL server). и запрос гаранитированно должен обновить для каждой строки свое значение.


Ответы (0 шт):