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

三个表的简单查询,烦请大家给指点一下解决办法

2012-02-25 
三个表的简单查询,烦请大家给指点一下三个表的简单查询A表A1A2A3B表B1B2B3B4C表A1B1C1A1B3C2......要求得

三个表的简单查询,烦请大家给指点一下
三个表的简单查询

A表
A1
A2
A3

B表
B1
B2
B3
B4

C表
A1   B1   C1
A1   B3   C2
......

要求得到一个总表:
A1   B1   C1
A1   B2   NULL
A1   B3   C1
A1   B4   NULL
A2   B1   NULL
A2   B2   NULL
A2   B3   NULL
A2   B4   NULL
A3   B1   NULL
A3   B2   NULL
A3   B3   NULL
A3   B4   NULL

这样的SQL怎么去写?烦请大家给指点一下,谢谢

[解决办法]
Create Table A
(aVarchar(10),
bVarchar(10),
cVarchar(10))

Create Table B
(bVarchar(10),
dVarchar(10),
eVarchar(10))

Create Table C
(aVarchar(10),
dVarchar(10),
fVarchar(10))

Insert A Select 'a1 ', 'b1 ', 'c1 '
Union All Select 'a2 ', 'b2 ', 'c2 '
Union All Select 'a3 ', 'b1 ', 'c3 '

Insert B Select 'b1 ', 'd1 ', 'e1 '
Union All Select 'b1 ', 'd2 ', 'e2 '
Union All Select 'b1 ', 'd3 ', 'e3 '
Union All Select 'b2 ', 'd2 ', 'e4 '

Insert C Select 'a1 ', 'd1 ', 'f1 '
GO
Create View V_TEST
As
Select
TOP 100 Percent
A.a,
A.b,
A.c,
B.d,
B.e,
C.f
From
A
Inner Join
B
On A.b = B.b
Left Join
C
On A.a = C.a And B.d = C.d
Order By A.a, A.b, A.c
GO
Select * From V_TEST O
GO
Drop Table A, B, C
Drop View V_TEST
--Result
/*
abcdef
a1b1c1d1e1f1
a1b1c1d2e2NULL
a1b1c1d3e3NULL
a2b2c2d2e4NULL
a3b1c3d1e1NULL
a3b1c3d2e2NULL
a3b1c3d3e3NULL
*/

热点排行
Bad Request.