我现在有几个表:
A表字段:
id,bid (id 为主键,bid外键)
1,2
1,3B表字段 :
id , name,parantid ( id 为主键,parantid 为父id )
1,'qwe',
2,'qwe1',1
3,'aa',2现在a表里面bid存的是b.id中的子id。
我想得到的结果是:
count(*),b.name( 这里的name 可能是跳了1级或者2级的父id所对应的id )
3 qwe
A表字段:
id,bid (id 为主键,bid外键)
1,2
1,3B表字段 :
id , name,parantid ( id 为主键,parantid 为父id )
1,'qwe',
2,'qwe1',1
3,'aa',2现在a表里面bid存的是b.id中的子id。
我想得到的结果是:
count(*),b.name( 这里的name 可能是跳了1级或者2级的父id所对应的id )
3 qwe
解决方案 »
- oracle与mysql数据同步问题
- imp导入数据问题!!!!
- 如何得到一个表有多少列? 我怎么用变量(declare rowcountnum number[int]) rowcountnum 接收其列的数量?
- 求救!各位大哥帮帮忙!
- 计算非重复时间
- 有没有方法可以在不全部重装数据库的情况下添加OLAP window Functions功能?
- 急问:如何在oracle里批量rebuild索引?
- 一个oracle故障排除的问题
- snapshot log是什么东东?怎么用?
- 大家介绍一下oci函数的用法吧
- ORA-12545: 因目标主机或对象不存在,连接失败
- 请问alter database rename file 改名不能再改回去么?
2 select 1 id,'qwe' name,null parentid from dual union all
3 select 2 id,'qwe1' name,1 parentid from dual union all
4 select 3 id,'aa' name,2 parentid from dual)
5 SELECT COUNT(*), NAME
6 FROM (SELECT id, connect_by_root(b.name) NAME
7 FROM b
8 START WITH b.parentid IS NULL
9 CONNECT BY PRIOR b.id = b.parentid)
10 GROUP BY NAME; COUNT(*) NAME
---------- ----
3 qweSQL>
我这里是求
select count(a.id) ,b.name
from a, b
where a.bid = b.id 我举例 错了 ,应该是得到
count name
2 qwe
不好意思。
select count(a.id) id ,
max((select name from b
where connect_by_isleaf =1
start with a.bid=b.id
connect by b.id=prior b.parentid
)) name
from a, b
where a.bid = b.id