问一个联合修改数据的问题

moodboy1982 2012-05-14 03:49:02
有两个表如:
-----------------------第一个表(Table1)---------------
姓名 年龄 性别
张三 18 男
李四 19 女
-----------------------第二个表(Table2)-----------------
姓名 身高
张三 160
李四 150
---------------------------------------------------
现在我想把第一个表扩展,把第二个表的身高也放在第一个表。于是我就修改第一个表Table1
姓名 年龄 性别 身高
张三 18 男 ?
李四 19 女 ?

问题是我怎么样把Table2的身高用SQL语句更新到Table1中的“身高”中。这两个表是主外键妆联的。
...全文
108 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kadboy 2012-05-14
  • 打赏
  • 举报
回复
update Table1
set 身高=Table2.身高
from Table2
where Table1.姓名=Table2.姓名
十林 2012-05-14
  • 打赏
  • 举报
回复
我猜想楼主的两个表是通过姓名主外键妆联的

UPDATE t1
SET t1.身高 = t2.身高
FROM Table1 AS t1
INNER JOIN Table2 AS t2 ON t1.姓名=t2.姓名
  • 打赏
  • 举报
回复

--> 测试数据:[Table1]
if object_id('[Table1]') is not null drop table [Table1]
create table [Table1]([姓名] varchar(4),[年龄] int,[性别] varchar(2))
insert [Table1]
select '张三',18,'男' union all
select '李四',19,'女'
--> 测试数据:[Table2]
if object_id('[Table2]') is not null drop table [Table2]
create table [Table2]([姓名] varchar(4),[身高] int)
insert [Table2]
select '张三',160 union all
select '李四',150

--给第一个表添加身高字段
alter table [Table1] add [身高] int
go
--更新第一个表的数据:
update [Table1]
set [Table1].[身高]=a.[身高] from [Table2] a
where a.姓名=[Table1].姓名
--验证:
select * from [Table1]

/*
姓名 年龄 性别 身高
张三 18 男 160
李四 19 女 150
*/
  • 打赏
  • 举报
回复
update tb1
set 身高=tb2.身高
from tb1 join tb2 on tb1.姓名=tb2.姓名

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧