两表(多表)关联update的写法_SQL技巧
发布于:软件开发网 来源:互联网 作者:佚名 时间:2009-01-01 点击:157
今天凌晨因为要在数据库里做一些操作,是关于两表关联的update,但语句怎么写都不正确,老是报错,于是心惊肉跳(就怕不能及时完成操作)去查了一下,NND,原来把SQL写成了在SQL Server下面的特有形式,这种语法在Oracle下面是行不通的,急忙改回来,及时完成了任务。顺便也把查到的SQL帖出来,哪天再忘记了,也好在这里找回来:
软件开发网
update customers a
set city_name=(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id)
where exists (select 1
from tmp_cust_city b
where b.customer_id=a.customer_id
)
-- update 超过2个值
update customers a
set (city_name,customer_type)=(select b.city_name,b.customer_type
from tmp_cust_city b
where b.customer_id=a.customer_id)
where exists (select 1
from tmp_cust_city b
where b.customer_id=a.customer_id
)
这是我在mysql的应用,参考了上面的语法.
update t_wb_worldcup_guess g set username=(select u.name from t_wb_user as u where u.uid=g.userid ) where exists (select 1 from t_wb_user u where u.uid = g.userid)
分享到:
相关推荐
这里我们将探讨如何使用SQL `UPDATE` 语句来实现多表关联更新,特别关注标题和描述中提到的例子。 首先,我们有两个表:A表和B表,它们都有一个共同的字段 `c1`。A表的记录包括 `(1, a1)`, `(2, a2)`, `(3, a3)`, `...
在SQL Server中,批量更新两个关联表的数据是数据库管理中常见的操作,特别是在处理大量数据时。下面我们将详细探讨两种在SQL Server中实现这种批量更新的方法。 ### 方法1:使用JOIN进行更新 ```sql UPDATE a ...
这种方式可以同时执行更新和插入操作,但写法比较繁琐,并且最多只能两个表关联,复杂的语句用 Merge 更新法将力不从心且效率差。 四、游标更新法 游标更新法是使用游标来遍历数据并执行更新操作,语法为:`BEGIN ...
这个过程通常涉及到多表关联,确保正确匹配源数据和目标数据。在MySQL 4.0及以上版本中,这样的功能变得更加灵活。 首先,让我们来看看提供的几个示例: **Solution 1: 单列更新** ```sql UPDATE student s, city ...
本文主要总结了在MySQL中进行多表更新的不同SQL语句写法,适用于需要根据一张表中的数据来更新另一张表的情况。 首先,我们可以使用传统的`UPDATE`语句与两张表的简单联接(JOIN)来实现跨表更新。例如,假设有`...
在MySQL数据库中,多表关联查询常常用于处理复杂的业务场景,特别是当数据分布在多个相关表中时。在一对多关系中,一个主表记录可以对应多个从表记录,例如在这个例子中,客户信息表(Customer)与订单表(Orders)...
标题所提到的"SqlServer中批量update语句"就是一个很好的例子,它展示了如何根据两个表之间的关联字段进行数据同步。 描述中提到了两张表——S_PERSON和S_USER,我们需要将S_USER表中的ACCOUNT字段更新为S_PERSON表...
以下是一些常见的SQL语句写法来实现这一目标。 1. **LEFT OUTER JOIN** 方法: ```sql UPDATE file_manager_folder f1 LEFT OUTER JOIN file_manager_folder f2 ON f1.name = f2.name AND f2.parentId = 54 ...
下面将详细解释Spring框架中切入点表达式的常用写法。 1. **execution()指示符**: - `execution()`是Spring中最常用的切入点指示符,用于匹配方法执行。 - 语法结构:`execution(modifiers-pattern? ret-type-...
复杂继承则涉及多个类和表的映射,包括单表、多表等方式。 6. **组件映射**:比如汽车与轮子,汽车类中包含轮子组件,轮子在汽车的映射文件中被配置。 7. **HQL(Hibernate Query Language)相关配置**:Hibernate...
BaseJDBC和CRUDDAO是Java中处理数据库操作的两个关键组件,它们主要用于实现数据库的基本CRUD(Create、Read、Update、Delete)操作。在Java应用开发中,特别是对于那些需要频繁与数据库交互的系统,这样的底层数据...
首先,我们来看如何使用`UPDATE`语句同时更新两张表。假设我们有两张表`ZZ_TEST1`和`ZZ_TEST2`,它们之间通过`pid`字段关联。`ZZ_TEST1`中有`text`字段需要根据`ZZ_TEST2`中的`text1`字段进行更新。我们可以构造如下...
这个SQL语句使用了INNER JOIN来关联两个表,然后同样更新A表的c1和c2字段。INNER JOIN确保只处理那些A表和B表id匹配的记录。WHERE子句限制了B表中age大于50的记录。 两者的区别: 1. 写法风格:第一个语句在WHERE...
在T-sql的写法上有很大的讲究,下面列出常见的要点:首先,DBMS处理查询计划的过程是这样的: 1、 查询语句的词法、语法检查 2、 将语句提交给DBMS的查询优化器 3、 优化器做代数优化和存取路径的优化 4、...
例如,创建一个AFTER UPDATE触发器,当`Employees`表中的员工工资更新时,记录日志: ```sql CREATE TRIGGER trg_UpdateEmployeeSalary ON Employees AFTER UPDATE AS BEGIN INSERT INTO AuditLog (TableName, ...
11. 视图与DML操作:如果视图基于多表并包含多表的列,一般情况下仍可以通过视图进行DML操作,但某些复杂情况可能受限。 12. `sysdatabases`系统表:记录了数据库的相关信息,但不包含存储过程参数信息,存储过程...
查询结果可以使用`result()`和`result_array()`方法获取,前者返回对象数组,后者返回关联数组。`num_rows()`用于获取查询结果的行数,而`num_fields()`则返回字段数量。 在插入数据时,CodeIgniter提供了简洁的API...
1. 视图可以基于多表,但如果视图中列来自多张表,可能无法直接通过DML语句(如`INSERT`, `UPDATE`, `DELETE`)操作数据,因为这些操作可能涉及多表的复杂关系。 2. `sysdatabases`系统表记录数据库信息,但不包括...
5. 参考完整性(引用完整性)规定,一个表引用另一个表的数据时,必须引用外键约束,确保数据的关联性。 6. 内连接仅返回满足连接条件的行,而外连接即使不满足条件也会返回所有行,其中未匹配的部分以NULL表示。 ...