oracle如何一对多,oracle多对多查询
在Oracle数据库中如何把两张表关联起来,多对一或者一对一一对多。请写明语句 谢谢!!!
必须要有关联字段,如T1表的id字段与t2表的id字段为关联字段则:
创新互联自成立以来,一直致力于为企业提供从网站策划、网站设计、网站设计制作、成都网站建设、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。
select
*
from
t1,t2
where
t1.id=t2.id
只要各张表有关联字段,写法直接在上面的基础上累加!
oracle 中一对多的查询
你是不最后结果显示有问题?
自己检查下
创建表及数据
create table a
(aid varchar2(10),
aname varchar2(3),
bids varchar2(10));
create table b
(bid varchar2(10),
bname varchar2(10));
insert into a values ('1','aaa','1,2');
insert into a values ('2','bbb','1');
insert into b values ('1','bbbb');
insert into b values ('2','bbbcc');
commit;
执行
select t1.aid,t1.aname,t2.bid,t2.bname from
(with test as (select aid,aname,bids from a)
select t.aid,t.aname,substr(t.ca,instr(t.ca, ',', 1, c.lv) + 1,instr(t.ca, ',', 1, c.lv + 1) - (instr(t.ca, ',', 1, c.lv) + 1)) AS bid
from (select aid,aname,',' || bids || ',' AS ca,length(bids || ',') - nvl(length(REPLACE(bids, ',')),0) AS cnt FROM test) t,
(select LEVEL lv from dual CONNECT BY LEVEL = 100) c where c.lv = t.cnt) t1,
b t2
where t1.bid=t2.bid
结果
怎样在oracle里面建立一对多关系
怎样在oracle里面建立一对多关系
一个分类下面有多个分类吗 比如说,电器分类下面有电视机,电脑之类的分类吗,这个可以用一个表自身一对多来实现 就是一个表,有 typeid,name ,note,visible,这四个字段之外,增加一个字段parentid,其中parentid又是跟本身这个表通过外键相关联的。parentid代表的是这个类型的父类型的id。这个字段可以为空,因为你总有一些顶级的分类,是没有父类型的。至于完整性,你的自己添加数据的时候,注意就可以了,违反完整性约束的话,你是不能把数据加入到数据库里面的。在加入数据的时候,你得保证parentid必须与这个表的某个主键相同。
分享标题:oracle如何一对多,oracle多对多查询
文章来源:http://azwzsj.com/article/dssdcgd.html