2011-01-19 69 views
1

我需要孩子一個需要幫助來編寫Sql更新查詢?

這個我解釋

update table1 set column1 = (select name from table2 where profile = true) 
where column2 in (select id from table2 where profile = true) 

基本上我需要從孩子副本名稱和設定值來更新父表是在表1列1,其中ID是在父母相同,子表和表2配置=真

+3

支持多表UPDATE語句在不同的SQL數據庫中有很大不同。請說明您需要哪種產品解決方案。 – 2011-01-19 02:24:06

回答

2
update table1 
set column1 = table2.name 
FROM table1 join table2 ON table1.column2 = table2.ID 
where table2.profile = true 

[可能需要調整您的特定SQL方言(未指定RDBMS)]

+0

什麼是「檔案」?它不應該是'profile ='true'',不是一個字符串嗎? – VoodooChild 2011-01-19 02:44:25

+0

@VoodooChild:閱讀上面的問題。我不知道海報欄的類型或用法。 – 2011-01-19 02:45:14

1

對於SQL Server,該更新表實際上也是在FROM子句 SQL Server使用位的布爾值(無真/假),所以我懷疑你使用的是別的東西

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