网上摘下的数据库例子:
数据表A(栏目信息)
menuID(栏目ID,int) addAdminID(填加者,varchar(20)) modifyAdminID(修改者,varchar(20)
1 1 2
2 1 3
3 2 1
4 2
5 3
数据表B(管理员信息)
adminID(管理员ID,int) adminName(管理员姓名,varchar(50))
1 张三
2 李四
3 王五
我想出现建立这样的视图:
menuID(栏目ID) addAdminName(填加者) modifyAdminName(修改者)
1 张三 李四
2 张三 王五
3 李四 张三
4 李四
5 王五
请各位给我思路或者SQL语句都可以,谢谢!
--創建測試環境
Create Table A
(menuID int,
addAdminID varchar(20),
modifyAdminID varchar(20))
Insert A Select 1, '1', '2'
Union All Select 2, '1', '3'
Union All Select 3, '2', '1'
Union All Select 4, '2', ''
Union All Select 5, '3', ''
Create Table B
(adminID int,
adminName Nvarchar(50))
Insert B Select 1, N'张三'
Union All Select 2, N'李四'
Union All Select 3, N'王五'
GO
--創建視圖
Create View V_TEST
AS
Select
A.menuID,
B.adminName As addAdminName,
C.adminName As modifyAdminName
From
A
Left Join
B
On A.addAdminID = B.adminID
Left Join
B C
On A.modifyAdminID = C.adminID
GO
--測試
Select * From V_TEST
GO
--刪除測試環境
Drop Table A, B
Drop View V_TEST
GO
--結果
/*
menuIDaddAdminNamemodifyAdminName
1张三李四
2张三王五
3李四张三
4李四NULL
5王五NULL