Mysql 通过连接表2中的信息更新表1中的列
我有一个表1,它有我想要更新的VIN。 表1和表2分别具有相同的OBJ ID和POID。 我只知道表2中的设备IDMysql 通过连接表2中的信息更新表1中的列,mysql,sql-server,toad,Mysql,Sql Server,Toad,我有一个表1,它有我想要更新的VIN。 表1和表2分别具有相同的OBJ ID和POID。 我只知道表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
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
从另一个表更新表,请尝试以下语法
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'
确保删除查询末尾的分号,因为有些数据库会抱怨它是否在TOAD中 如果您使用的是SQL Server,那么下面的查询将起作用
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')
您是在SQL Server还是MySQL中运行此查询?另外,您似乎希望使用表2中的另一列值更新VIN。是吗?@Sunil我实际上在用蟾蜍。是的,我试图通过表2中相应的值在表1中添加VIN。基本上我知道表2中的设备ID。我正在更新表1中的VIN。唯一连接两个事物的是表1中的OBJ和表2中的POID。因此,表2中有一列名为
VIN
。如果是,请检查我刚刚发布的查询。我添加了查询,假设表2.VIN
列存在。为我提供了一个。VIN无效标识符抱歉,请慢消息。我正在更新查询。我正在获取B。设备ID是无效的标识符。对于您给出的第一个查询。对于MYSQL的第二个查询给出了缺少的Set关键字错误。第二个查询是针对MYSQL的,但您似乎想要一个针对Oracle的查询。让我为您创建一个Oracle查询。我已经发布了该查询的Oracle版本。请检查一下。我认为这行不通。表2没有vin。哦,我以为你在原始帖子下的评论中说过。那么您想将VIN更新为什么值?表2中的哪一列将替换VIN?