需要帮助编写Sql更新查询?

时间:2011-01-19 02:13:59

标签: sql

我需要使用来自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

2 个答案:

答案 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