首页 新闻 会员 周边

SQL把查询出的多个表的结果行连接起来

0
悬赏园豆:50 [已解决问题] 解决于 2012-05-23 14:47

表1

id int

name nvarchar(50)

...

表2

id int

name nvarchar(50)

...

其中表1和表2中的记录没有交叉,而且表1和表2除了id和name外其他列都是不同名不同义的,比如:

表1

1  name1 ........

2  name2 ........

表2

100  name100 ......

101  name101 ......

下面我想要一次查询出以下结果:

id      name

1      name1

2      name2

100  name100

101  name101

请问可行否,该怎么做?

豌豆爸爸Aaron的主页 豌豆爸爸Aaron | 初学一级 | 园豆:114
提问于:2012-05-23 11:20
< >
分享
最佳答案
0
select id, name from 表1 a
union  all
select id, name from 表2 b

既然你只要id,name这两列,就只查询这两列,然后union好了,如果确定记录没有交叉就加上all,这样数据库不会检查去重,可以提升下效率

收获园豆:25
花无形 | 菜鸟二级 |园豆:279 | 2012-05-23 12:10
其他回答(2)
0
select a.area_id par_Id, 0 men_Id, a.area_name men_Name from area a  
union  
select d.area_id, d.department_id , d.department_name from department d  
http://www.isstudy.com/sqlser/2582.html
收获园豆:10
悟行 | 园豆:12559 (专家六级) | 2012-05-23 11:32

不同列数的UNION问题,虽然我没问,但是用的时候也遇到了,谢谢你。

支持(0) 反对(0) 豌豆爸爸Aaron | 园豆:114 (初学一级) | 2012-05-23 14:46
0

select 表1.id as id  ,表1.name as name from 表1,表2 where 表1.id=表2.id  union select id,name from 表1 where id not in (select id from 表2) union select id,name from 表2 where id not in (select id from 表1)

收获园豆:5
wvsy | 园豆:297 (菜鸟二级) | 2012-05-23 11:34

取迪卡尔积了,这个通常是要避免的,还是谢谢你。

支持(0) 反对(0) 豌豆爸爸Aaron | 园豆:114 (初学一级) | 2012-05-23 14:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册