sql >> データベース >  >> RDS >> PostgreSQL

値を照合して別のテーブルからテーブルに挿入するにはどうすればよいですか?

    UPDATEで追加のテーブルを結合できます この好ましい形式を考慮したステートメント:

    UPDATE books b
    SET    author_id = a.author_id
    FROM   authors a
    WHERE  b.author = a.author_name;
    

    3つの理由:

    • より安全です。クエリは、一致する作成者が見つからないすべての行にNULL値を書き込みます。あなたのケースではそれは問題ではないようですが、更新する列にすでにデータがある場合、同様のクエリでデータが失われる可能性があります。一致する作成者が見つからない場合、私の代替手段は何もしません。

    • それは速いです。上記の1つ。ただし、相関サブクエリ も理由です。 あなたがひどくスケールを持っているように。テーブルへの結合は、特に数行を超える場合は、一般的に高速です。

    • よりクリーンで、追加のカラムに簡単に適合できます。



    1. 許可にもかかわらず、別のスキーマのオブジェクトにアクセスするOracleViewを作成できません

    2. XA / JTAトランザクションはまだ使用されていますか?

    3. Docker Compose + Spring Boot+Postgres接続

    4. SQL Serverを使用してソフトウェアバージョンを比較するにはどうすればよいですか?