SQL环境:SQL Server 2008
业务需求:将查询的记录集合更新部分字段,涉及到多张表
1.SQL查询获得的记录集合:
SELECT u.USER_NAME_,g.desc_, u.email_, u.mobile_ FROM BDF2_GROUP g, BDF2_GROUP_MEMBER gm, UBP_USER u where g.id_=gm.group_id_ and gm.username_=u.user_name_ AND g.desc_ IN ( '310115-02', '310118-02', '310112-02' ) order by u.USER_NAME_
2.将原有SQL转化成等价的SQL【采用SQL子查询】
SELECT USER_NAME_, email_, mobile_ FROM UBP_USER WHERE USER_NAME_ IN ( SELECT username_ FROM BDF2_GROUP_MEMBER WHERE group_id_ IN ( SELECT id_ FROM BDF2_GROUP WHERE desc_ IN ( '310115-02', '310118-02', '310112-02' ) ) ) ORDER BY USER_NAME_
3.SQL修改一张表部分字段【查询时涉及多张表】
UPDATE UBP_USER SET email_ = 'abcd@qq.com', mobile_ = '11111111111' WHERE USER_NAME_ IN ( SELECT username_ FROM BDF2_GROUP_MEMBER WHERE group_id_ IN ( SELECT id_ FROM BDF2_GROUP WHERE desc_ IN ( '310115-02', '310118-02', '310112-02' ) ) )