Welcome 微信登录

首页 / 数据库 / MySQL / SQL——两个表之间的更新:用一个表的字段更新另一个表的字段

--1. 这种写法相当于一个 Left join, 以外面的where为更新条数。    --   注意! 如果内面的表的(where之后取得的)条数比外面表的(where之后取得的)条数少, 会造成 不满足=条件的记录 赋给 null 值。   --   要想不出现错误地赋 NULL 值, 必须在外面加一个 in ( select ... ) , 强制内外表的记录一致。  
  1. UPDATE patient  
  2. SET    ForeignName = (  
  3.            SELECT ForeignName_New  
  4.            FROM   Patient_YNG  
  5.            WHERE  patient.PatientID = patient_yng.PatientID  
  6.        )  
  7. WHERE  patient.ClinicID = 1483  
  8.        AND patient.PatientID IN (SELECT patientid  
  9.                                  FROM   Patient_YNG)  
--2. 这种写法轻松, 而且不易出错。
  1. UPDATE patient  
  2. SET    ForeignName = ForeignName_New  
  3. FROM   Patient_YNG  
  4. WHERE  patient.PatientID = patient_yng.PatientID  
  5.        AND patient.ClinicID = 1483  
使用Oracle SQL Developer 编写运行 PL/SQL 块SQL——自定义的fn_Split函数相关资讯      SQL 
  • SQL 新手指南  (09/10/2015 10:57:53)
  • SQL导入txt以及SQL中的时间格式操  (01/25/2015 11:35:04)
  • SQL 事务及实例演示  (08/12/2014 10:36:37)
  • SQL 中的正则函数  (06/28/2015 15:59:48)
  • SQL 集合(笔记)  (01/15/2015 20:19:06)
  • Oracle shell调用SQL操作DB  (02/03/2014 10:48:18)
本文评论 查看全部评论 (0)
表情: 姓名: 字数