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

简单有关问题,3表关联,50分

2012-02-21 
简单问题,3表关联,50分有3表表a表b表c通过表a知道表b的值,通过表b知道表c的值anumberserv_idbserv_idexch_

简单问题,3表关联,50分
有3表
表a
表b
表c
通过表a知道表b的值,通过表b知道表c的值
a
number
serv_id
b
serv_id
exch_id
nwk_id
c
nwk_id
describ

输入number-> 通过a得到serv_id-> 通过serv_id查表b-> 得到nwk_id-> nwk_id在C表中不止一条
我想得到的结果是
a.number,b.exch,c中的此number对应的nwk_id的条数

比如单条数据
1234567(number)-> 321(serv_id),334(exch_id)-> 678(nwk_id)
然后我count下C表中nwk_id等于678的条数是2
结果是
1234567,334,2
现在我有100多万数据....求助.谢谢


[解决办法]
select a.number,b.exch_id,count(*)
from a inner join b
on a.serv_id=b.serv_id
inner join c
on b.nwk_id=c.nwk_id
group by a.number,b.exch_id

--这样行不
[解决办法]
select a.number,b.exch_id,count(*)
from a ,b, c
where a.serv_id=b.serv_id
and b.nwk_id=c.nwk_id
group by a.number,b.exch_id

[解决办法]
select a.number ,
b.exch_id,
count(1)
from a ,
inner join b
inner join c on
a.serv_id = b.serv_id
and b.nwk_id = c.nwk_id
group by a.number ,
b.exch_id
[解决办法]
advancejar(金谜) 你听我说,正确解决方法如下:
======================================================================
你的表结构为:
a(number , serv_id)
b( serv_id, exch_id, nwk_id)
c( nwk_id, describ)
======================================================================
操作语句为:
select a.numbers,b.exch_id,count(*)
from a ,b , c
where a.serv_id=b.serv_id
and b.nwk_id=c.nwk_id
group by a.numbers,b.exch_id
======================================================================

热点排行
Bad Request.