Select
B.name As name1,
C.name As name2,
D.name As name3
From
A
Inner Join
B
On A.name1 = B.id
Inner Join
B C
On A.name2 = C.id
Inner Join
B D
On A.name3 = D.id
declare @A table(name1 nvarchar(1),name2 nvarchar(1),name3 nvarchar(1))
declare @B table(id nvarchar(1),name nvarchar(10))
insert @A select 'A','B','C'
insert @B select 'A',N'张三' union all
select 'B',N'李四' union all select 'C',N'王二'
select(select name from @B where id = a.name1) name1,
(select name from @B where id = a.name2)name2,
(select name from @B where id = a.name3)name3
from @A a
Select
B.name As name1,
C.name As name2,
D.name As name3
From
A
Left Join
B
On A.name1 = B.id
Left Join
B C
On A.name2 = C.id
Left Join
B D
On A.name3 = D.id
declare @t1 table(name1 char(1),name2 char(1),name3 char(1))
declare @t2 table([id] char(1),[name] varchar(20))
insert into @t1
select'A','B','C'
insert into @t2
select'A','张三'
union all select'B','李四'
union all select'C','王二'
select (select [name]from @t2 where [id]=a.name1)as name1,
(select [name]from @t2 where [id]=a.name2)as name2,
(select [name]from @t2 where [id]=a.name3)as name3
from @t1 a
Select
B.name As name1,
C.name As name2,
D.name As name3
From
A
Left Join
B
On A.name1 = B.id
Left Join
C
On A.name2 = C.id
Left Join
D
On A.name3 = D.id