Sql 从另一个表中的查询更新表

Sql 从另一个表中的查询更新表,sql,database,sql-update,Sql,Database,Sql Update,出现语法错误 我们想从另一个表中的搜索更新表devicenumplanmap。尝试类似的操作: UPDATE devicenumplanmap SET devicenumplanmap.e164mask = '+1' FROM devicenumplanmap WHERE (select devicenumplanmap.pkid, devicenumplanmap.e164mask from devicenumplanmap, device where d

出现语法错误


我们想从另一个表中的搜索更新表devicenumplanmap。

尝试类似的操作:

UPDATE devicenumplanmap 
SET devicenumplanmap.e164mask = '+1' 
FROM devicenumplanmap 
WHERE (select devicenumplanmap.pkid, devicenumplanmap.e164mask 
       from devicenumplanmap, device 
       where devicenumplanmap.fkdevice = device.pkid 
         and device.name like '%RDP' 
         and devicenumplanmap.e164mask like '819%')

看起来您正在尝试使用联接进行更新。根据您的RDBMS,语法略有不同

MySQL:

SQL Server:

更普遍的做法:


这应该适用于,简单和简单

UPDATE devicenumplanmap 
SET e164mask = '+1' 
WHERE e164mask like '819%' AND
    fkdevice IN (
        SELECT pkid
        FROM Device 
        WHERE name like '%RDP' 
)

哪个RDBMS-每个RDBMS的sytax的不同风格…更新devicenumplanmap集合devicenumplanmap.E164从devicenumplanmap中掩码=“+1”,其中存在从devicenumplanmap中选择*,devicenumplanmap.fkdevice=device.pkid和device.name(如“%RDP”)以及devicenumplanmap.e164掩码(如“819%”)的设备看起来像是尝试使用TSQL更新语法。SQL server?可能是井的副本!非常感谢你!它就像一个符咒!我只是简单地添加了concat!很荣幸!更新devicenumplanmap集合e164mask=concat'+1',e164mask,其中E164 Mask如'418%'和fkdevice,从名称如'%RDP'@DanikW.Therrien-np的设备中选择pkid,很高兴我能提供帮助!
UPDATE devicenumplanmap d
    JOIN device de ON d.fkdevice = de.pkid
SET d.e164mask = '+1' 
WHERE de.name like '%RDP' 
       AND d.e164mask like '819%'
UPDATE  d
SET d.e164mask = '+1' 
FROM devicenumplanmap d 
    JOIN device de ON d.fkdevice = de.pkid
WHERE de.name like '%RDP' 
       AND d.e164mask like '819%'
UPDATE devicenumplanmap 
SET e164mask = '+1' 
WHERE e164mask like '819%' AND
    fkdevice IN (
        SELECT pkid
        FROM Device 
        WHERE name like '%RDP' 
)
UPDATE devicenumplanmap
SET devicenumplanmap.e164mask = '+1' 
FROM devicenumplanmap dp 
INNER JOIN device d
ON dp.fkdevice = d.pkid
WHERE d.name like '%RDP' 
and dp.e164mask like '819%'