0

我不知道如何用一个查询进行多次更新。

这是我的 2 张桌子。

设备表

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

我将如何在temporary_table 中填写DeviceID?我需要什么样的查询?

4

2 回答 2

2

您需要使用更新语句:

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 回答