SQL:SELECT結果でUPDATEする
SELECT結果でUPDATEする場合、UPDATE先のレコードとSELECT結果のレコードとで対応付けされている必要がある。
UPDATE先1レコードに対して、SELECT元1レコードは可。
UPDATE先複数レコードに対して、SELECT元1レコードは可。
UPDATE先1レコードにSELECT元複数レコードは不可。
これはUPDATE先とSELECT元との INNER JOIN で解決する。
code:sql
UPDATE destTable INNER JOIN sourceTable
ON
destTable.key1 = sourceTable.key1
AND destTable.key2 = sourceTable.key2
SET
destTable.col1 = sourceTable.col1,
destTable.col2 = sourceTable.col2
code:sql
UPDATE destTable
SET
destTable.col1 = sourceTable.col1,
destTable.col2 = sourceTable.col2
FROM
destTable
INNER JOIN
sourceTable
ON
destTable.key1 = sourceTable.key1
AND destTable.key2 = sourceTable.key2
関連