求一SQL语句?谢过了先!
表A
id name
----
aa 张三
bb 李四
cc 王五
表B(表A的name和表B的name1、name2是关联的)
noo name1 name2
1 aa bb
2 bb cc
3 cc aa
现在我想得到这样的结果
noo name1 name2
1 张三 李四
2 李四 王五
3 王五 张三
也就是说我想把人的id号换成人名的方式显示出来
这里先谢过了!!!
问题点数:20、回复次数:10Top
1 楼bzszp(SongZip)回复于 2003-11-03 15:49:56 得分 3
select noo,(select a.name from a where a.id=b.name1) name1,
,(select a.name from a where a.id=b.name2) name2
from b;Top
2 楼lianhg(lianhg)回复于 2003-11-03 15:55:30 得分 2
select B.noo
,decode(b.name1,a.id,a.name)
,decode(b.name2,a.id,a.name)
from b,a
where b.name1=a.id
or b.name2=a.idTop
3 楼beckhambobo(beckham)回复于 2003-11-03 16:50:10 得分 3
select noo,(select name from a where a.id=b.name1) name1,(select name from a where a.id=b.name2) name2 from bTop
4 楼silinzi(刚洗完澡时我很帅)回复于 2003-11-03 17:14:27 得分 0
TO:bzszp(SongZip) 和 beckhambobo(beckham)
两位高手,我把你们写的SQL语句执行了一下,出错“ORA-00936: 缺少表达式”
我用的是oracle805,是不是版本太低不支持呀
TO:lianhg(lianhg)
这位大侠,你的SQl语句我也试了一下,如果有某条记录name1和name2都有值的话,
它会多出一行阿!Top
5 楼weilt(开往春天的地铁)回复于 2003-11-03 17:37:33 得分 5
Select B.Noo,A1.name Name1,A2.name Name2 from B,A A1,A A2
where B.name1=A1.ID(+)
and B.name2=A2.ID(+)Top
6 楼reludson(cwsoft)回复于 2003-11-04 11:37:13 得分 0
select noo,(select a1.name from a a1 where a1.id=b.name1) name1,
,(select a2.name from a a2 where a2.id=b.name2) name2
from b;Top
7 楼reludson(cwsoft)回复于 2003-11-04 11:38:30 得分 3
噢,我还写错了,应该是:
select noo,(select a1.name from a a1 where a1.id=b.name1) as name1,
,(select a2.name from a a2 where a2.id=b.name2) as name2
from b;
Top
8 楼dang555()回复于 2003-11-04 15:45:38 得分 2
select aa.id,bb.name,cc.name name1 from b aa,a bb,a cc where aa.name1=bb.id and aa.name2=cc.idTop
9 楼beckhambobo(beckham)回复于 2003-11-04 18:08:02 得分 0
select b.noo,b.name name1,c.name name2 from a,b,b c where a.aa(+)=b.name1 and a.aa(+)=c.name2Top
10 楼chanet(牧师)回复于 2003-11-05 01:41:52 得分 2
SELECT b.noo,a1.name,a2.name
FROM a a1,a a2,b
WHERE (b.name1 = a1.id) and (b.name2=a2.id);
Top




