SQL合并两个表的问题

xqy 2011-05-20 02:54:37
我想用sql 把下面两个表 合成一个表 select 出来该怎么写?

表一:
省份 2009年产生量
湖北 275
湖南 444
四川 55
黑龙江 444

表二:
省份 2010年产生量
湖北 78
吉林 756
辽宁 48
四川 58
黑龙江 356


合并成第三个表:


省份 2009年产生量 2010年产生量
湖北 275 78
吉林 0(或空) 756
辽宁 0 48
湖南 444 0
四川 55 58
黑龙江 444 356




...全文
146 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xqy 2011-05-21
  • 打赏
  • 举报
回复
不对啊 这个表达式 还是有问题的
xqy 2011-05-20
  • 打赏
  • 举报
回复
偶 原来如此

非常感谢
WWWWA 2011-05-20
  • 打赏
  • 举报
回复
select uniontable.*,表一.col2,表二.col2 from

select * from (
select table1.col1,table1.col2,table2.col2 from table1 inner join table2 on table1.col1=table2.col2 ) as表一
union
select * from (
select table3.col1,table1.col2,table4.col2 from table1 inner join table2 on table3.col1=table4.col2 ) as表二
) as uniontable

left join 表1 on 表一.col1 = uniontable.col1
left join 表2 on 表二.col1 = uniontable.col1
xqy 2011-05-20
  • 打赏
  • 举报
回复
我知道 这样可以 但是 我想用as 啊

这个是在嵌套里面 ,我想在外面 再用这个 查出来的结果:
select uniontable.*,表一.col2,表二.col2 from
(select table1.col1,table1.col2,table2.col2 from table1 inner join table2 on table1.col1=table2.col2 <as表一>
union
select table3.col1,table1.col2,table4.col2 from table1 inner join table2 on table3.col1=table4.col2 <as表二>
) as uniontable

left join 表1 on 表一.col1 = uniontable.col1
left join 表2 on 表二.col1 = uniontable.col1
WWWWA 2011-05-20
  • 打赏
  • 举报
回复
select table1.col1,table1.col2,table2.col2 from table1 inner join table2 on table1.col1=table2.col2
xqy 2011-05-20
  • 打赏
  • 举报
回复
我知道 我没有加括号 也报错
ACMAIN_CHM 2011-05-20
  • 打赏
  • 举报
回复
不能加括号

select table1.col1,table1.col2,asdf.col2 from table1 join table2 as asdf on table1.col1=asdf.col2
xqy 2011-05-20
  • 打赏
  • 举报
回复
谢谢

问题搞定

另:join 和as 不能同时用么,如下:

select table1.col1,table1.col2,table2.col2 from table1 join table2 (as asdf)on table1.col1=table2.col2

有as 报错,去掉as 的时候正常
zhaojianmi1 2011-05-20
  • 打赏
  • 举报
回复
select case when A.省份 is null then B.省份 else A.省份 end as 省份,
A.2009年产生量,
B.2010年产生量
from t1 A full join t2 B on A..省份 = B.省份
zhaojianmi1 2011-05-20
  • 打赏
  • 举报
回复
select case when A.省份 is null then B.省份 else A.省份 end as 省份,
A.2010年产生量,
B.2010年产生量
from t1 A full join t2 B on A..省份 = B.省份
WWWWA 2011-05-20
  • 打赏
  • 举报
回复
select a.*,b.2009年产生量,c.2010年产生量 from (
select 省份 from t1
union
select 省份 from t2) a
left join t1 b on a.省份=b.省份
left join t2 c on a.省份=c.省份
xqy 2011-05-20
  • 打赏
  • 举报
回复
就是想把 第二个表 加到第一个表上

但是省份一列 不完全相同

相同的合并到一行

不同的 分两行

SQL能实现么

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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