关于两个表更新数据的问题(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)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务...

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

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

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

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

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

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

sql语句中not in和exists 的用法以及更新两个表数据的插入实例

exists 与 in 最大的区别在于 in引导的子句只能返回一个字段,exists : 强调的是是否返回结果集,不要求知道返回什么,

两个关联表如何更新其中一个表的数据

示例更新: UPDATE B SET B.F_DATE=A.F_DATE FROM C1T06 A, C1T15 B WHERE A.F_CODE=B.F_CODE AND A.F_CQRQ =B....

#发现#用sudo apt-get update更新失败的问题

好吧由于之前的虚拟机出了一点点小问题,所以我现在就在重装系统。 然后就顺便归纳转载一点装好系统之后出现的一些小问题啦~ 众所周知,apt-get update 是新安装ubuntu系统之后很多人都...

怎样解决Windows Update当前无法检查更新的问题

Windows Update检查更新时提示错误:【Windows Update 当前无法检查更新,因为未运行服务。你可能需要重新启动计算机。】 如图所示 方法/步骤: 1、依次单击【开始】—...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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