首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个数据检索的有关问题

2012-03-01 
一个数据检索的问题现在有种情况,一个表中,一个字段对应两个主表,也就是说一个字段中的数据有两种,现在想

一个数据检索的问题
现在有种情况,一个表中,一个字段对应两个主表,也就是说一个字段中的数据有两种,现在想把所有的数据都检索出来,有没有什么好办法吗?
例如:
Table1    
                              code         companycode                       b      
以前的数据             1                   1(联想)                       ..
                                2                   2(IBM)                           ..
新的数据        
                                3               10001(联想)                     ..  
                                4               10002(IBM)                       ..

现在想一起把他们检索并显示出来,有什么好办法吗?
谢谢各位高手

[解决办法]
用union all合并表后进行检索
[解决办法]

--合并重复行
select * from A
union
select * from B


--不合并重复行
select * from A
union all
select * from B
[解决办法]

create table T1(ID int, code int, name varchar(10), companycode varchar(10))
insert T1 select 1, 1, '张三 ', '1 '
union all select 2, 2, '李四 ', '2 '
union all select 3, 1, '张三 ', '10001 '
union all select 4, 2, '李四 ', '10002 '
go
create table T2(companycode int, companyname varchar(10))
insert T2 select 1, '联想 '
union all select 2, 'IBM '
go
create table T3(companycode varchar(10), companyname varchar(10))
insert T3 select '10001 ', '联想 '
union all select '10002 ', 'IBM '

select T1.ID, T1.code, T1.name,
companyname=isnull(T2.companyname, T3.companyname)
from T1
left join T2 on T1.companycode=T2.companycode
left join T3 on T1.companycode=T3.companycode

--result
ID code name companyname
----------- ----------- ---------- -----------
1 1 张三 联想
2 2 李四 IBM
3 1 张三 联想
4 2 李四 IBM

(4 row(s) affected)

热点排行