本文总结了在sql server,oracle,mysql中update语句多表关联更新的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
在本例中:我们要用表gdqlpj中的gqdltks,bztks字段数据去更新landleveldata中的同字段名的数据,条件是当landleveldata 中的geo_code字段值与gdqlpj中的lxqdm字段值相等时进行更新。
sql server语法:
update { table_name with ( < table_hint_limited > [ ...n ] ) |view_name | rowset_function_limited } set { column_name = { expression | default| null } | @variable = expression | @variable = column = expression } [ ,...n ]{ { [ from { < table_source > } [ ,...n ] ] [ where < search_condition > ] } | [where current of { { [ global ] cursor_name } | cursor_variable_name } ] } [option ( < query_hint > [ ,...n ] ) ]
sql server示例:
update a set a.gqdltks=b.gqdltks,a.bztks=b.bztks fromlandleveldata a,gdqlpj b where a.geo_code=b.lxqdm
oracle语法:
update updatedtable set (col_name1[,col_name2...])= (selectcol_name1,[,col_name2...] from srctable [where where_definition])
oracel 示例:
update landleveldata a set (a.gqdltks, a.bztks)= ( b.gqdltks,b.bztks from gdqlpj b where a.geo_code=b.lxqdm)
mysql语法:
update table_references set col_name1=expr1 [, col_name2=expr2 ...][where where_definition]
mysql 示例:
update landleveldata a, gdqlpj b set a.gqdltks= b.gqdltks, a.bztks=b.bztks where a.geo_code=b.lxqdm