PostgreSQLのJOINを使用して他のテーブルに参加し、そのテーブルからカラムを挿入する方法


  1. SELECT文とサブクエリを使用する方法:
INSERT INTO table1 (column1, column2, column3)
SELECT t2.column1, t2.column2, t2.column3
FROM table1 t1
JOIN table2 t2 ON t1.join_column = t2.join_column;

上記のコードでは、table1にカラムを挿入するために、table2とJOINしています。JOINの条件は、table1table2join_columnが一致することです。t2.column1t2.column2t2.column3は、table2のカラムです。

  1. INSERT文とサブクエリを使用する方法:
INSERT INTO table1 (column1, column2, column3)
VALUES (
    (SELECT column1 FROM table2 WHERE table2.join_column = table1.join_column),
    (SELECT column2 FROM table2 WHERE table2.join_column = table1.join_column),
    (SELECT column3 FROM table2 WHERE table2.join_column = table1.join_column)
);

上記のコードでは、table1にカラムを挿入するために、table2からサブクエリを使用してカラムの値を取得しています。table2.join_columntable1.join_columnが一致するレコードのカラム値が、table1に挿入されます。

  1. UPDATE文とサブクエリを使用する方法:
UPDATE table1
SET column1 = t2.column1,
    column2 = t2.column2,
    column3 = t2.column3
FROM table2 t2
WHERE table1.join_column = t2.join_column;

上記のコードでは、table1の既存のレコードのカラム値を、table2のカラム値で更新しています。JOINの条件は、table1.join_columntable2.join_columnが一致することです。

これらの方法を使用することで、PostgreSQLで他のテーブルに参加し、参加先のテーブルからカラムを挿入することができます。適切なJOIN条件を指定し、必要なカラムを選択してください。