sql怎么合并两个表的数据

oldleft_hxb 2015-03-10 03:17:01
比如一个表是语文成绩
张三 98
李四 96

另一个表是数学成绩
张三 78
王五 82

怎么合并成一个表
张三 98 78
李四 96 null
王五 null 82
...全文
1305 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2015-03-11
  • 打赏
  • 举报
回复

create table 语文成绩
(sname varchar(10),score int)

insert into 语文成绩
 select '张三',98 union all
 select '李四',96

create table 数学成绩
(sname varchar(10),score int)

insert into 数学成绩
 select '张三',78 union all
 select '王五',82


select isnull(a.sname,b.sname) 'sname',
       a.score 'yuwen',
       b.score 'shuxue'
 from 语文成绩 a
 full join 数学成绩 b on a.sname=b.sname

/*
sname      yuwen       shuxue
---------- ----------- -----------
张三         98          78
李四         96          NULL
王五         NULL        82

(3 row(s) affected)
*/
guojun17 2015-03-10
  • 打赏
  • 举报
回复
select name,sum(YuWen) as YuWen,Sum(ShuXue) as ShuXue from ( select name,YuWen, null as ShuXue from 语文成绩 union all select name,null as YuWen, ShuXue from 数学成绩 ) as a group by name
reenjie 2015-03-10
  • 打赏
  • 举报
回复

select name,sum(YuWen) as YuWen,Sum(ShuXue) as ShuXue from (
select name,YuWen, null as ShuXue from  语文成绩
union all
select name,null as YuWen, ShuXue from  数学成绩
) as a 
group by  name
yooq_csdn 2015-03-10
  • 打赏
  • 举报
回复

select a.name ,b.成绩 ,c.成绩
((select name from 数学 union select name from 语文) a left join 语文 b on a.name=b.name) left join 数学 c a.name=c.name

zhuiqcgong 2015-03-10
  • 打赏
  • 举报
回复
select a.name,yuwen,shuxue from yuwenbiao a full join shuxuebiao on a.name=b.name 你搜索全连接就可以了

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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