1

postgresql を使用して、Acompany_namedepartment_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その結合を試みると、期待される結果が得られます。

4

1 に答える 1