MySQLで別のテーブルから複数の列を使用してテーブルを更新する方法


方法1: UPDATEとJOINを使用する方法

UPDATE テーブル1
JOIN テーブル2 ON テーブル1.共通の列 = テーブル2.共通の列
SET テーブル1.列1 = テーブル2.列1, テーブル1.列2 = テーブル2.列2, ...

この方法では、UPDATE文とJOIN文を組み合わせて、2つのテーブルを共通の列で結合します。SET句を使用して、テーブル1の列をテーブル2の列の値で更新します。複数の列を更新する場合は、カンマで区切って列名と値を指定します。

方法2: サブクエリを使用する方法

UPDATE テーブル1
SET テーブル1.列1 = (SELECT テーブル2.列1 FROM テーブル2 WHERE 条件),
    テーブル1.列2 = (SELECT テーブル2.列2 FROM テーブル2 WHERE 条件),
    ...

この方法では、サブクエリを使用して別のテーブルから値を取得し、それをUPDATE文で使用してテーブル1を更新します。各列の値を取得するためにサブクエリを使用し、SET句でテーブル1の各列に値を設定します。

方法3: INSERT INTOとSELECT文を使用する方法

INSERT INTO テーブル1 (列1, 列2, ...)
SELECT 列1, 列2, ...
FROM テーブル2
WHERE 条件
ON DUPLICATE KEY UPDATE
    テーブル1.列1 = テーブル2.列1,
    テーブル1.列2 = テーブル2.列2,
    ...

この方法では、INSERT INTO文とSELECT文を組み合わせて、テーブル1に別のテーブルから値を挿入します。条件に基づいてテーブル2から選択した列の値をテーブル1に挿入し、重複キーが存在する場合はUPDATE文を使用して値を更新します。

これらの方法は、MySQLで別のテーブルから複数の列を使用してテーブルを更新するための一般的な手法です。具体的な要件やデータベースの設計によって最適な方法が異なる場合があります。必要に応じてこれらの例を参考にして、自身の環境に合わせた更新方法を選択してください。