1. 首先把这种“ update...set...from...join... where...”查询起个名字叫: 【连接查询更新】。
2. 有两种写法:
一种是(好理解的方式),更新查询表中的数据,即更新时取查询表的别名。举例如下:
BEGIN TRAN
UPDATE a SET a.PlayerName = a.PlayerName + b.GuestName
FROM dbo.T_Order a INNER JOIN dbo.T_OrderDetail b ON a.OrderNo = b.OrderNo
WHERE a.OrderNo = '16062902957'
GO
--ROLLBACK TRAN
COMMIT TRAN
第二种写法跟第一种类似,但更接近与传统的更新语句写法。 举例如下:
BEGIN TRAN
UPDATE T_Order SET PlayerName = o.PlayerName + od.GuestName
FROM T_Order o INNER JOIN dbo.T_OrderDetail od ON o.OrderNO = od.OrderNo
WHERE o.OrderNo = '16062902957'
--ROLLBACK TRAN
COMMIT TRAN
3. 说明:上面两种写法中红色字体的表必须是有关联的【系统默认是关联的】。