根据ID在另一个表的MySQL更新表

问题描述:

这是我试过根据ID在另一个表的MySQL更新表

update site 
set value_id = 4464551 
where (select id from base 
where name = 'myName' and 
discriminator = 'abc' and 
system_id = 001) 

我想要什么

  • 更新的trget网站value_id其中id =(内select语句)

我有什么
- 它在网站中的所有行更新

问题
- 我怎样才能得到一个的ID内的SELECT语句的回报?

以下查询应该可以工作。

UPDATE site 
SET value_id = 4464551 
WHERE site.id = (
    SELECT id 
    FROM base 
    WHERE name 'myName' AND 
     discriminator = 'abc' AND 
     system_id = 001 
) 

或者,如果你希望多行被更新:

UPDATE site 
SET value_id = 4464551 
WHERE site.id IN (
    SELECT id 
    FROM base 
    WHERE name 'myName' AND 
     discriminator = 'abc' AND 
     system_id = 001 
) 

你也可以得到你想要的东西,而无需使用内的SQL语句,例如:

update site, base 
set site.value_id = 4464551 
where 
base.name = 'myName' and 
base.discriminator = 'abc' and 
base.system_id = 001 and 
site.id = base.id