2014-10-08 68 views
0

這是我試過根據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語句的回報?

回答

2

以下查詢應該可以工作。

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 
) 
0

你也可以得到你想要的東西,而無需使用內的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 
相關問題