我无法弄清楚如何使用一个查询进行多次更新。
这是我的2张桌子。
devices_table
DeviceID Brand SerialNumber
---------------------------------
1 Nintendo 324234324
2 Nintendo 89978333
3 Sony Z3432343
4 Sony Z3424335
temporary_table
DeviceID Brand SerialNumber
---------------------------------
NULL Nintendo 324234324
NULL Nintendo 89978333
NULL Sony Z3432343
NULL Sony Z3424335
我将如何填写temporary_table中的DeviceID?我需要什么样的查询?
答案 0 :(得分: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
);
<强> Example on 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;
<强> Example on SQL Fiddle 强>
答案 1 :(得分: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;