找回密码
 注册
搜索
热搜: 回贴
微赢网络技术论坛 门户 数据库 查看内容

子查询合并表

2009-12-14 18:28| 发布者: admin| 查看: 34| 评论: 0|原作者: 千年缘

△这种方法适用于2个表之间没有字段有联系,......


这种方法适用于2个表之间没有字段有联系,只是按已排列的顺序合在一起,下面的方法是不用临时表用子查询实现的方法,该方法不适用于处理大量行。它适用于处理几百行。对于大型表,一定要使用索引以避免进行大范围的搜索。
create table tb1
(id int identity(1,1) primary key clustered,
l_name varchar(10))
go
create table tb2
(l_id char(3) primary key clustered,
f_name varchar(10))
--tb1中的数据
id l_name
----------- ----------
1 aaa
2 bbb
3 ccc
4 ddd
5 eee
6 fff
7 ggg
8 hhh
9 kkk
--tb2中的数据
l_id f_name
---- ----------
afd dfsg1
cbn gsdg2
cgb kddf3
dlk fgjn4
ery bfhfhx5
fdh dsdfas6
gjf dfh7
lft cfghsh8
snf dgjhdg9
--合并程序
select id,l_name,l_id,f_name
from (select rank=count(*),a.id,a.l_name from tb1 a join tb1 b on a.id>=b.id group by a.id,a.l_name ) a1
join (select rank=count(*),a.l_id,a.f_name from tb2 a join tb2 b on a.l_id>=b.l_id group by a.l_id,a.f_name ) a2
on a1.rank=a2.rank
--结果
id l_name l_id f_name
----------- ---------- ---- ----------
1 aaa afd dfsg1
2 bbb cbn gsdg2
3 ccc cgb kddf3
4 ddd dlk fgjn4
5 eee ery bfhfhx5
6 fff fdh dsdfas6
7 ggg gjf dfh7
8 hhh lft cfghsh8
9 kkk snf dgjhdg9

最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 17:35 , Processed in 0.167424 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部