将一个表中的某列的值全部更新为与另一表中某一列的值相等

来源:互联网 发布:爱淘宝怎么改收货地址 编辑:程序博客网 时间:2024/05/03 13:28

数据库使用的是db2,其中有两个表,检查表(STUDY_TBL)和筛选表(SELECTION_TBL)

==================================

STUDY_TBL的描述大致如下:

STUDY_LID INTEGER PRIMARY KEY,

STUDY_DATE DATE

... ...

SELECTION_TBL的定义描述大致如下:

SELECTION_LID INTEGER PRIMARY KEY,

STUDY_LID INTEGER,

STUDY_DATE

... ...

=====================================

STUDY_LID在SELECTION_TBL中不是唯一的,现在要将SELECTION_TBL中的STUDY_DATE全部更新为与STUDY_TBL中的STUDY_DATE相同(也就是说,在这两张表中,STUDY_,LID相同的,SELECTION_TBL中的STUDY_DATE要保持与STUDY_TBL中的STUDY_DATE相同)。

sql语句如下:


UPDATE PACS.SELECTION_TBL SEL
   SET STUDY_DATE = (SELECT ST.STUDY_DATE
                       FROM PACS.STUDY_TBL ST
                      WHERE ST.STUDY_LID = SEL.STUDY_LID)
 WHERE EXISTS
 (SELECT 1 FROM PACS.STUDY_TBL ST1 WHERE ST1.STUDY_LID = SEL.STUDY_LID)


PACS是模式名称,在以后的文章中,还要详细讨论exists的用法,敬请期待。。。。

1 0
原创粉丝点击