通过加入来自 table 2 的信息更新 table 1 中的列

updating a column in table 1 by joining information from table 2

我有表格 1,其中包含我要更新的 VIN。 table 1 和 table 2 具有相同的 OBJ ID 和 POID(分别)。 我只知道 table 2.

中的设备 ID
update table.1 set VIN = '5TDKK3DC6BS018229'
from table 2, table 1
where 2.device ID = 'TCAXLcKkt3'
and 2.OBJ = 1.POID;

我收到 SQL 命令未正确结束。

错误消息看起来您正在使用 Oracle

如果我没记错,这就是您要找的

UPDATE table1 
SET    vin = '5TDKK3DC6BS018229' 
WHERE  EXISTS (SELECT 1 
               FROM   table2 B 
               WHERE  table1.obj = B.poid 
                      AND B."device id" = 'TCAXLcKkt3')

在 Oracle 中使用 Join 从另一个 table 更新 table 尝试以下语法

UPDATE 
(SELECT A.VIN
 FROM table1 A
 INNER JOIN table2 B
 ON A.OBJ = B.POID
 WHERE B."device ID" = 'TCAXLcKkt3'
) t
SET T.VIN = '5TDKK3DC6BS018229'

确保删除查询末尾的 semi-colon,因为如果它在 TOAD 中,某些数据库会抱怨。

如果您使用的是 SQL 服务器,则可以使用以下查询。

UPDATE table1
SET VIN = '5TDKK3DC6BS018229'
FROM table1
INNER JOIN table2 ON table1.POID = table2.OBJ
WHERE table2.deviceID = 'TCAXLcKkt3'

如果您想要 MySQL 的相同查询,请使用下面的查询。

UPDATE table1 a 
       JOIN table2 b 
         ON a.poid = b.obj 
SET    a.vin = '5TDKK3DC6BS018229' 
WHERE  b.deviceid = 'TCAXLcKkt3' 

如果您使用的是 Oracle,则使用如下查询。

UPDATE table1 
SET    table1.vin = '5TDKK3DC6BS018229'
 where exists (SELECT table2.obj 
                     FROM   table2 
                     WHERE  table2.obj = table1.poid 
                            AND table2.deviceid = 'TCAXLcKkt3')