通过两张表的一个字段对应,update其中一张表的某个字段
通过两张表的一个字段对应,update其中一张表的某个字段
update PolityFace set fdJoinDay =
(SELECT b.fdJoinDay FROM personbaseinfo b WHERE PolityFace.fsPersonID = b.fsPersonID) where exists
(SELECT 1 FROM personbaseinfo d WHERE PolityFace.fsPersonID = d.fsPersonID)
update PolityFace set fdJoinDay =
(SELECT b.fdJoinDay FROM personbaseinfo b,PolityFace c WHERE c.fsPersonID = b.fsPersonID) where exists
(SELECT 1 FROM personbaseinfo d WHERE PolityFace.fsPersonID = d.fsPersonID)
两个sql的目的是一致的,但是逻辑不同。
第一个sql中的SELECT b.fdJoinDay FROM personbaseinfo b WHERE PolityFace.fsPersonID = b.fsPersonID的PolityFace.fsPersonID 是从一开始的PolityFace 中取的值,而第二个sql中的
c.fsPersonID是从两个表交叉集合取出的值,故会报错。