Используя postgresql, у меня есть таблица A
со столбцами company_name
, department_name
, некоторыми другими данными и department
.
У меня есть другая таблица B
с простыми company_name
, department_name
и did
. (Это две таблицы со связью между ними, но я сделал из них представление, чтобы упростить синтаксис.)
Я хочу установить A.department
в B.did
строки с соответствующими именами. Это часть процесса нормализации.
В соответствии с этим Q&A я пробовал:
UPDATE A
SET department=did
FROM A AS A
INNER JOIN B
ON A.company_name = B.company_name AND A.department_name=B.department_name;
Но я получаю результат, что A.department
для всех строк установлено одно и то же значение.
(Я также пробовал другой синтаксис из здесь, но получаю синтаксические ошибки как и ожидалось.)
Почему это не работает, а точнее, почему строки не совпадают должным образом. Когда я пробую SELECT
в этом объединении, я получаю ожидаемый результат.