Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 通过连接表2中的信息更新表1中的列_Mysql_Sql Server_Toad - Fatal编程技术网

Mysql 通过连接表2中的信息更新表1中的列

Mysql 通过连接表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

我有一个表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    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?