关于两个表更新数据的问题(update)

转载 2015年11月20日 13:22:38

我现在有两张表.A与B
A的字段有id,name,pwd...
B的字段有userid,password
现在我想把A中pwd更新成B中的password(A中的id与B中的userid都是相对应于学生的ID),SQL语句应该怎么写呢??


update A
     set pwd = (select password from B where userid = A.id);

 


这样写逻辑有问题的,, 如果对应的记录在B表中不存在,,会被更新成null的..

1. update A set pwd = (select password from B where userid = A.id);
    where id in (select userid from B);

2. 如果B表的userid为主键的话,,可以使用关联更新..

update (
  select a.pwd pwd,b.password
  from A,B
  where a.id = b.userid
)
set pwd = password;

两个事物 update同一张表出现的死锁问题

引言 近来做省一级计算机一级考试系统的时候,学生端进行大批量判分的时候,出现了这样的问题(事务(进程 ID 262)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务...

oracle 实现 关联两个表更新 update select

需求:        有两张表A,B。表A和表B有共同的字段,id,dev_ip,collector_id. 其中id是作为两个表关联的唯一标识。即表A中的id与表B中的id是一一对应的。本来B表中...

DB2 更新记录update时碰到sqlcode = 911锁表的问题

最近遇到并发太高操作同一张表,经常会报错911,导致事务回滚的状况。 查找报错的源码部分,发现是两个地方导致的 1、根据主键更新记录 2、根据手机号更新记录 问题分析: 分析DB2的锁机制,由于DB2...
  • hithedy
  • hithedy
  • 2016年03月08日 14:10
  • 3244

SQL UPDATE 更新数据用法之多表查询

数据表2张,如:表A,表B 现在要求:更新A表的字段,但这些表是从B表来的,且A和B并没有什么关系等。 实现方式:采用update a set from b方式实现,A表和B表的字段很多,采用@变...

Update 多行数据(将一张表中某列的值更新到另外一张表中)

Update 多行数据(将一张表中某列的值更新到另外一张表中)、 MERGE INTO USING、UPDATE SET FROM INNER join on WHERE 、UP...

SQL之merge into 批量更新数据 sql数据同步 基于源表对目标表做Insert,Update,Delete操作

Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源...
  • xycit
  • xycit
  • 2013年12月05日 18:19
  • 2834

数据结构与算法分析笔记与总结(java实现)--链表12:打印两个升序链表公共值问题

数据结构与算法分析笔记与总结(java实现)--链表12:打印两个升序链表公共值问题...

左程云_算法与数据结构 — 链表问题 — 01打印两个有序链表的公共部分

问题描述给定两个有序链表的头指针head1,head2,打印两个链表的公共部分思路分析注意是有序的链表 如果head1的值小于head2,那么将head1向后移 如果head1的值大于head2,那么...

C#中DataGridView绑定了DataTable后,通过代码修改DataGridView中的数据,总有一行(被修改过并被用户选中的行集合中索引为0的行)不能被UpDate回数据库的问题和解决办法

问题细节: DataAdapter的update方法可以接收一个datatable参数  然后运行下列代码来改变行数据,再去更新数据库的数据 foreach (DataGridViewRo...
  • iloli
  • iloli
  • 2013年07月07日 19:45
  • 10964
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于两个表更新数据的问题(update)
举报原因:
原因补充:

(最多只允许输入30个字)