postgresql を使用して、A列company_name、department_name、その他のデータ、および を含むテーブルがありますdepartment。
、、およびBだけの別のテーブルがあります。(これは間に関係がある 2 つのテーブルですが、構文を簡単にするためにビューを作成しました。)company_namedepartment_namedid
名前が一致する行のに設定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すべての行が同じ値に設定されているという結果が得られます。
( hereとは別の構文も試しましたが、予想どおり構文エラーが発生します。)
なぜそれが機能しないのか、より具体的には、行が適切に一致しないのはなぜですか。SELECTその結合を試みると、期待される結果が得られます。