读书人

表A中多个字段的内容有表B查询得到怎

发布时间: 2012-01-14 20:02:35 作者: rapoo

表A中多个字段的内容有表B查询得到,如何写SQL语句?
表A:
字段:name1 name2 name3
内容:A B C

表B:
字段:id name
内容:A 张三
B 李四
C 王二

如何写SQL语句使表A对应的DBGrid显示的是
张三 李四 王二
这样的结果?




[解决办法]
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
[解决办法]
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

/*结果
name1 name2 name3
-------------------- -------------------- --------------------
张三 李四 王二
*/
[解决办法]
我的了,要改下


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
[解决办法]
不不建使用你那子查的方式,可以直接的嘛。 :)
[解决办法]
sirit(兽性大发的小白兔) ( ) 信誉:100 2007-08-17 20:08:38 得分: 0


A中的name在B中是一定存在的,使用关联是什么意思?
需要改动数据库吗?
我没法动数据库的,只能做个客户端连接数据库。


--------------------
倒,不用改的。

如果A中的name在B中是一定存在的,可以,就是的法。

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

读书人网 >SQL Server

热点推荐