`
lhx1026
  • 浏览: 306758 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

[转]关于使用多表做update的语法

阅读更多

原文地址:http://kitesky.itpub.net/post/909/15065

 

一、当用一个表中的数据来更新另一个表中的数据,T-SQL提供多种写法(下面列出了二种),但建议用第一种写法,虽然传统,但结构清晰。
并且要注意,当用一个表中的数据来更新另一个表中的数据时,二个表一定要有关联!

1.
update  t1 set t1.c2 = t2.c2
from  t2
where  t1.c1 = t2.c1

2.
Update  t1 set t1.c2 = t2.c2
from  t1 inner join t2 on t1.c1 = t2.c1

二、FROM 子句中指定的表的别名不能作为 SET column_name 子句中被修改字段的限定符使用。例如,下面的内容无效:
UPDATE titles
    SET t.ytd_sales = t.ytd_sales + s.qty
    FROM titles t, sales s
    WHERE t.title_id = s.title_id
    AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

若要使上例合法,请从列名中删除别名 t 或使用本身的表名。
1.
UPDATE titles
    SET ytd_sales = t.ytd_sales + s.qty
    FROM titles t, sales s
    WHERE t.title_id = s.title_id
    AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
2.
UPDATE titles
    SET titles.ytd_sales = t.ytd_sales + s.qty
    FROM titles t, sales s
    WHERE t.title_id = s.title_id
    AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

分享到:
评论

相关推荐

    VFP语法Selet,delete,Update等语法,方便学习

    `SELECT` 命令用于从一个或多个表中检索数据。其基本语法如下: ```sql SELECT column_name(s) FROM table_name WHERE condition ``` - **列名(column_name(s))**:要选择的数据列。 - **表名(table_name)**:...

    oracle 多表做update insert语句.docx

    Oracle 多表 Update 语句详解 在 Oracle 中,Update 语句是数据库操作中的重要组成部分。 Update 语句可以对数据库中的数据进行修改,更新和插入。今天,我们将讨论 Oracle 中的 Update 语句,包括 Update 语句的...

    Update和Select结合使用

    - **跨表操作**:当更新操作涉及到多张表时,使用`UPDATE`与`SELECT`结合可以简化流程。 ### 6. 注意事项 - **性能考虑**:虽然这种方法可以提高效率,但在处理大量数据时仍需注意性能问题。 - **事务处理**:在...

    ORACLE UPDATE 语句语法与性能分析看法

    当需要从多个表中提取信息并更新主表时,多表关联`UPDATE`就显得尤为重要。例如,从临时表`tmp_cust_city`中提取更准确的城市信息并更新到`customers`表中,同时可能还需要更新客户类型: ```sql UPDATE customers a...

    ORACLE_UPDATE_语句语法与性能分析

    请注意,使用子查询更新多个列时,如果子查询返回多行,UPDATE语句会抛出错误。在上述示例中,由于每个`customer_id`在tmp_cust_city表中只有一个对应的记录,所以不会发生这种情况。然而,为了确保安全,最好在实践...

    update语句

    了解如何有效地使用`UPDATE`语句,以及如何配合`WHERE`子句来定位正确的记录,对于任何数据库管理员或开发人员来说都是至关重要的技能。同时,了解其在不同数据库系统中的细微差异,比如SQL Server、MySQL、Oracle等...

    根据update语句自动生成select语句

    在PL/SQL中,你可以先定义一个匿名块,使用游标来模拟UPDATE到SELECT的转换: ```sql DECLARE CURSOR c_emp IS SELECT * FROM Employees WHERE Department = 'Sales'; BEGIN FOR emp IN c_emp LOOP -- 打印或...

    sybase基本的 语法大全

    3. **视图**:视图是从一个或多个表中选择数据的虚拟表,不实际存储数据。使用`CREATE VIEW`语句可以创建视图,它提供了数据的另一种表示方式,可以隐藏某些复杂查询或敏感信息。例如: ```sql CREATE VIEW ...

    sql语法大全一览表

    以上是根据提供的文件信息整理出的SQL语法知识点及其具体应用示例,涵盖了数据查询、插入、删除、更新、表的创建与修改、权限管理以及一些高级功能如变量声明和循环控制等。这些知识点是SQL学习者必须掌握的基础,也...

    SQLServerUpdate多表Join

    ### SQL Server Update 多表 Join 知识点详解 在 SQL Server 中,有时我们需要更新多个表中的数据,尤其是在这些表之间存在某种关联的情况下。本文将详细介绍如何使用 `UPDATE` 语句结合 `JOIN` 来实现对多个表的...

    不同数据库update实现多表更新.doc

    在数据库开发中,update语句的使用是非常常见的,特别是在多表更新的情况下。但是,不同的数据库系统对update语句的实现方式各不相同,这就给开发人员带来了很大的困惑。因此,本文总结了在SQL Server、Oracle、...

    VB 利用UPDATE语句批量更新数据表中的数据

    在学习这个主题时,理解SQL语言的基本语法以及如何在VB中正确使用ADO对象是非常关键的。同时,确保对数据库操作进行适当的错误处理,以防止意外情况导致程序崩溃。通过熟练掌握这些技能,你可以更有效地管理数据库中...

    MySQL数据库中group by语句与update语句的用法研究.pdf

    MySQL 数据库中 group by 语句与 update 语句的用法研究 本论文对 MySQL 数据库中的 group by 语句和 update 语句...在使用 update 语句时,在同一条查询语句中不能直接从某表中查出数据再更新或删除本表中的数据。

    sql语法表.doc

    - **语法**: `SELECT * FROM 表名 WHERE 字段名 比较运算符 / IN (SELECT 字段名 FROM 参照表 WHERE 条件);` - **示例**: 查询`users`表中`id`在`orders`表中存在的记录。 ```sql SELECT * FROM users WHERE id IN...

    数据表修改语法

    ### 数据表修改语法详解 #### 一、概述 在数据库管理与维护的过程中,经常会遇到需要对现有的数据表结构进行修改的情况。SQL(Structured Query Language)提供了丰富的语法来满足这种需求,其中最为常见的就是...

    update语句的优化-oracle .pdf

    当面对单表更新或较简单的SQL语句时,可以直接使用标准的update语法进行优化。这种方法的优化标准是尽可能简化SQL语句,减少不必要的计算和条件判断,从而提升执行效率。例如,若要更新某个字段的值,直接使用如下...

    oracle的update的五种方式

    这种方式比标准 Update 语句更灵活,可以关联多个表,并且执行速度快。但是,表 B 的主键必须在 where 条件中,并且是以“=”来关联被更新表,否则将报错。 三、Merge 更新法 Merge 更新法是 Oracle 特有的语句,...

    SQL语法总结(单表)

    3. 改:UPDATE SET语句用于修改数据表中已存在的数据,需指定要更新的列及对应的值,并且可以使用WHERE子句来限定更新范围。 4. 查:SELECT FROM语句用于从数据表中选择数据,可使用WHERE子句设定过滤条件,也可使用...

    Access语法大全.pdf

    Access语法大全.pdf是一份关于Access数据库语法的详细手册,涵盖了Access语法的各种方面,包括SELECT语句、DELETE语句、UPDATE语句、JOIN语句等。 SELECT语句 SELECT语句是Access数据库中最基本的语句之一,用于从...

Global site tag (gtag.js) - Google Analytics