UPDATE与多表关联更新

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'
			)
		)
	)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值