我需要使用来自child one的值更新父表
这是我的解释
update table1 set column1 = (select name from table2 where profile = true)
where column2 in (select id from table2 where profile = true)
基本上我需要从child复制名称,set在table1中为column1,其中ids在父表和子表中相同,表2中的profile = true
答案 0 :(得分:2)
update table1
set column1 = table2.name
FROM table1 join table2 ON table1.column2 = table2.ID
where table2.profile = true
[可能需要调整您的特定SQL方言(未指定RDBMS)]
答案 1 :(得分:1)
对于SQL Server,Update表实际上也在FROM子句中 SQL Server使用位用于布尔值(没有true / false),所以我怀疑你正在使用别的东西
update table1
set column1 = table2.name
from table2
where table1.column2 = table2.id and table2.profile = 1
MySQL表单(以及Oracle也是)
update table1 a join table2 b on a.column2 = b.id
set column1 = table2.name
where b.profile # 'true = true' is silly
# b.profile = true === just b.profile