Sql Server合并查询
最近一个项目中,需要实现多个数据表联合查询,其中,一个基本表的主键字段与其他表相关联,除此之外的表结构相同,并且,表的数量不唯一(按表名按月生成),下面就说一说我的存储过程实现方法。
基本表Base
ID Name
1 N1
2 N2
3 N3
数据表1Data1
ID Data
1 10
2 12
数据表2Data2
ID Data
3 9
2 11
需要实现的结构为
Name Data
1 10
2 11
2 12
3 9
同时使用union all 和left join
先每个数据表和基本表join,再实现union all
sql语句为
select Base.Name,Data1.Data
from Data1
left join Base on ( Base.ID=Data1.ID )
UNION ALL
select Base.Name,Data2.Data
from Data2
left join Base on ( Base.ID=Data2.ID )