这就是我试过的
update site
set value_id = 4464551
where (select id from base
where name = 'myName' and
discriminator = 'abc' and
system_id = 001)
我想要的是
我得到了什么
- 它更新了网站中的所有行
问题
- 如何获得内部select语句返回的一个id?
答案 0 :(得分: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
)
答案 1 :(得分: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