【转】sql 多表联合更新

SQL Update多表联合更新的方法

(1) sqlite 多表更新方法

update t1 set col1=t2.col1
from table1 t1
inner join table2 t2 on t1.col2=t2.col2
#这是一个非常简单的批量更新语句 在SqlServer中支持此语法 sqlite中却不支持

#sqlite中可转换为 如下语法
update table1 set col1=(select col1 from table2 where col2=table1.col2)

update ta_jbnt_tzhd_pht_Area_xiang set t1=(select sys_xzqhdm.name from sys_xzqhdm where t2=sys_xzqhdm.code) 

(2) SQL Server 多表更新方法

#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 from landleveldata a,gdqlpj b where a.GEO_Code=b.lxqdm

(3) access数据库多表更新方法

x = "update " + DLTB + " a inner join tbarea2 b  on a.objectid=b.FID  set a." + fd_dltb_xzdwmj + "=b.area_xzdw, a." + fd_dltb_lxdwmj + "=b.area_lxdw";
 SQLList.Add(x);

(4) Oracle 多表更新方法

Oracle语法: UPDATE updatedtable SET (col_name1[,col_name2...])= (SELECT col_name1,[,col_name2...] FROM srctable [WHERE where_definition])

Oracel 示例: update landleveldata a set (a.gqdltks, a.bztks)= (select b.gqdltks, b.bztks from gdqlpj b where a.GEO_Code=b.lxqdm)

(5) MySQL 多表更新方法

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
时间: 2024-08-30 06:46:25

【转】sql 多表联合更新的相关文章

sql两表联合更新

标签:sql 联合更新 数据库 休闲 职场 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://yukai.blog.51cto.com/1761494/372585 今天遇到数据库的一个更新操作. 1个数据库中有两个表(其中一个表是从另一个数据库复制来的,方法见我以前文章),这两个表通过公司名称对应起来,其中一个有称谓(Mr.,Miss.,Mrs),另一个没有,将这个表的称谓导入到另一个表中: sql:  update tb_c

SQL 之 多表联合更新

1. sqlite 多表更新方法 UPDATE tA SET col1=tB.col1 FROM tableA tA INNER JOIN tableB tB ON tA.col2=tB.col2 这是一个非常简单的批量更新语句 在SqlServer中支持此语法 sqlite中却不支持,sqlite中可转换为如下语法: UPDATE tableA SET col1=(SELECT col1 FROM tableB WHERE col2=tableA.col2) 2.SQL Server 多表更新

SQL多表联合查询

通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 在关系数 据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中.当检索数据时,通过连接操作查询出存放在多个表中的不同实体 的信息.连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型.为不同实体创建新的表,尔后通过连接进行查询. 连接可以在SELECT 语句的FROM子句或WHERE子句中建立,似是而非在FROM子句中指出连接时有助于将

SQL多表联合查询(LEFT JOIN)条件差异

查询A: select a.*,b.* into Bus605115_ON_Where_And --(642 行受影响) from PositionN a left join szt b on b.[fQCBH]=a.fBusNo where fdealtime between fDInTime and fDInTimeN and fbusno=605115 查询B: select a.*,b.* into Bus605115_ON_And_Where --(835 行受影响) from Pos

mysql 多表联合更新

UPDATE product p INNER JOIN productPrice pp ON p.productId = pp.productId SET pp.price = pp.price * 0.8, p.dateUpdate = CURDATE() WHERE p.dateCreated < '2004-01-01'

sql两表联合查询

SELECT yt_fault_componentId FROM yt_fault_component a join yt_fault_assembly b on a.yt_fault_assembly=b.yt_fault_assemblyId where a.yt_code='' and b.yt_code=''

SQL多表关联更新

T-SQL //方法1 UPDATE UIT SET UIT.InnerID = UAT.InnerID FROM UserMgr_UserAccount_SchoolLeader AS UAT INNER JOIN UserMgr_UserInfo_SchoolLeader AS UIT ON UAT.UserID = UIT.UserID //方法2 UPDATE UIT SET UIT.InnerID = UAT.InnerID FROM UserMgr_UserAccount_Schoo

Postgresql两表联结更新

Postgresql两表联合更新近日使用Postgresql感到有点不好用,一个联合更新非要这样写语法才对:update d_routetripset name=b.name ,    description=b.description from d_scenery  as bwhere foreignid=b.id and  d_routetrip.type='scenery' 如上所述,and 前的 d_routetrip表不能起别名,set后应用到此表也直接用字段表示,无需引用别名否则语法

SQL联表查询

数据库中最最常用的语法----select.简单的select语法很直白: select column from table where expression: 从((from)存储数据的地方(table)按照(where)一定的条件(expression)查找(select)我要的数据(column); 但是在实际工作中用到的比较多的往往还是多联表查询,所以在这里记下自己学习多联表查询的心得. 首先聊一聊笛卡尔积,这是几乎所有数据库书籍在讲多联表查询时第一个要讲的东西,我等P民也只能是把笛卡尔