0

1つのクエリで複数の更新を行う方法がわかりませんでした。

これが私の2つのテーブルです。

devices_table

DeviceID  Brand     SerialNumber
---------------------------------
1         Nintendo  324234324
2         Nintendo  89978333
3         Sony      Z3432343
4         Sony      Z3424335

一時的なテーブル

DeviceID  Brand     SerialNumber
---------------------------------
NULL      Nintendo  324234324
NULL      Nintendo  89978333
NULL      Sony      Z3432343
NULL      Sony      Z3424335

DeviceIDをtemporary_tableに入力するにはどうすればよいですか?どのようなクエリが必要ですか?

4

2 に答える 2

2

update ステートメントを使用する必要があります。

UPDATE  temporary_table
SET     DeviceID = (    SELECT  Devices_table.DeviceID
                        FROM    Devices_table
                        WHERE   Devices_table.Brand = temporary_table.Brand
                        AND     Devices_table.SerialNumber = temporary_table.SerialNumber
                    );

SQL Fiddle の例

または、相関サブクエリではなく結合を使用できます。

UPDATE  temporary_table
        INNER JOIN Devices_table
            ON Devices_table.Brand = temporary_table.Brand
            AND Devices_table.SerialNumber = temporary_table.SerialNumber
SET     temporary_table.DeviceID = Devices_table.DeviceID;

SQL Fiddle の例

于 2013-02-15T08:52:18.630 に答える
0

はい、次のクエリを使用できます。

UPDATE  temporary_table
SET     DeviceID = Devices_table.DeviceID
FROM    temporary_table
INNER JOIN Devices_table
ON Devices_table.Brand = temporary_table.Brand
AND Devices_table.SerialNumber = temporary_table.SerialNumber;
于 2013-02-15T08:56:23.367 に答える