首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

这个sql如何写

2012-02-16 
这个sql怎么写?表1:id fuwxm cbjg b312212122表2a1dmmcfwxm1zjfwxm2dlfwxm3pqcbjg1北京cbjg2上海其中,表1

这个sql怎么写?
表1:
id fuwxm cbjg b3
1 2 2 1
2 1 2 2

表2

a1 dm mc
fwxm 1 zj
fwxm 2 dl
fwxm 3 pq
cbjg 1 北京
cbjg 2 上海

其中,表1中fwxm列对应的是表2中的a1列为fwxm的项目,表1中cbjg列对应的是表2中的a1列对应的cbjg对应的列,现在要查询出来这样的:
1 dl 上海 1
2 zj 上海 2

我用的是oracle9i数据库。

[解决办法]
表1后两个字段没给说明啊
结果最后和最前的数字也没给说明,只能瞎猜了
select a.id,b.mc,c.mc,a.b3
from 表1 a inner join 表2 b on
a.fuwxm=b.dm
inner join 表2 c on
a.cbjg=c.dm
where b.a1='fwxm' and c.a1='cbjg'

[解决办法]
你也可以把where里的两个条件分别加到inner join 的两个on后
[解决办法]
select a.id,b.mc,c.mc,a.b3 from table1 as a,
(select a1,dm,mc from table2 where a1='fwxm') as b,
(select a1,dm,mc from table2 where a1='cbjg') as c
where a.fuwxm = b.dm
and a.fuwxm = c.dm
;
[解决办法]

SQL code
create table tb1(id int,fuwxm int,cbjg int,b3 int)insert into tb1 values(1 , 2 , 2 , 1) insert into tb1 values(2 , 1 , 2 , 2) create table tb2(a1 varchar(10), dm int, mc varchar(10))insert into tb2 values('fwxm' , 1 , 'zj') insert into tb2 values('fwxm' , 2 , 'dl') insert into tb2 values('fwxm' , 3 , 'pq') insert into tb2 values('cbjg' , 1 , '北京') insert into tb2 values('cbjg' , 2 , '上海')goselect m.id,       (select mc from tb2 n where a1 = 'fwxm' and dm = m.fuwxm) fwxm ,       (select mc from tb2 n where a1 = 'cbjg' and dm = m.fuwxm) cbjg ,       b3from tb1 mdrop table tb1 , tb2/*id          fwxm       cbjg       b3          ----------- ---------- ---------- ----------- 1           dl         上海         12           zj         北京         2(所影响的行数为 2 行)*/ 

热点排行