问一个联合修改数据的问题
有两个表如:
-----------------------第一个表(Table1)---------------
姓名 年龄 性别
张三 18 男
李四 19 女
-----------------------第二个表(Table2)-----------------
姓名 身高
张三 160
李四 150
---------------------------------------------------
现在我想把第一个表扩展,把第二个表的身高也放在第一个表。于是我就修改第一个表Table1
姓名 年龄 性别 身高
张三 18 男 ?
李四 19 女 ?
问题是我怎么样把Table2的身高用SQL语句更新到Table1中的“身高”中。这两个表是主外键妆联的。
[解决办法]
update tb1set 身高=tb2.身高from tb1 join tb2 on tb1.姓名=tb2.姓名
[解决办法]
--> 测试数据:[Table1]if object_id('[Table1]') is not null drop table [Table1]create table [Table1]([姓名] varchar(4),[年龄] int,[性别] varchar(2))insert [Table1]select '张三',18,'男' union allselect '李四',19,'女'--> 测试数据:[Table2]if object_id('[Table2]') is not null drop table [Table2]create table [Table2]([姓名] varchar(4),[身高] int)insert [Table2]select '张三',160 union allselect '李四',150--给第一个表添加身高字段alter table [Table1] add [身高] intgo--更新第一个表的数据:update [Table1]set [Table1].[身高]=a.[身高] from [Table2] awhere a.姓名=[Table1].姓名--验证:select * from [Table1]/*姓名 年龄 性别 身高张三 18 男 160李四 19 女 150*/
[解决办法]
我猜想楼主的两个表是通过姓名主外键妆联的
UPDATE t1SET t1.身高 = t2.身高FROM Table1 AS t1INNER JOIN Table2 AS t2 ON t1.姓名=t2.姓名
[解决办法]
update Table1
set 身高=Table2.身高
from Table2
where Table1.姓名=Table2.姓名