分享

SQL——两个表之间的更新:用一个表的字段更新另一个表的字段

 icecity1306 2015-05-29
  1. --1. 这种写法相当于一个 Left join, 以外面的where为更新条数。   
  2. --   注意! 如果内面的表的(where之后取得的)条数比外面表的(where之后取得的)条数少, 会造成 不满足=条件的记录 赋给 null 值。  
  3. --   要想不出现错误地赋 NULL 值, 必须在外面加一个 in ( select ... ) , 强制内外表的记录一致。  
  4. UPDATE patient  
  5. SET    ForeignName = (  
  6.            SELECT ForeignName_New  
  7.            FROM   Patient_YNG  
  8.            WHERE  patient.PatientID = patient_yng.PatientID  
  9.        )  
  10. WHERE  patient.ClinicID = 1483  
  11.        AND patient.PatientID IN (SELECT patientid  
  12.                                  FROM   Patient_YNG)  
  13.   
  14.   
  15. --2. 这种写法轻松, 而且不易出错。  
  16. UPDATE patient  
  17. SET    ForeignName = ForeignName_New  
  18. FROM   Patient_YNG  
  19. WHERE  patient.PatientID = patient_yng.PatientID  
  20.        AND patient.ClinicID = 1483  

select * from spkfk b ,hwsp a where hw='HWI00000001' and hwshl>0 and a.spid=b.spid and tongym like'%2'

我已经把条件选择出来了,但是想把,A表里的hwshl更新成0,条件就是where后边的

update hwsp  
set hwshl = 0
from hwsp , spkfk b
where hw='HWI00000001' and hwshl>0 and hwsp.spid=b.spid and tongym like'%2'

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多