Maison > Article > base de données > 将一个表中的某列的值全部更新为与另一表中某一列的值相等
数据库使用的是db2,其中有两个表,检查表(STUDY_TBL)和筛选表(SELECTION_TBL) ================================== STUDY_TBL的描述大致如下: STUDY_LID INTEGER PRIMARY KEY, STUDY_DATE DATE ... ... SELECTION_TBL的定义描述大致如下: SELECTION_L
数据库使用的是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的用法,敬请期待。。。。