当前位置:数据库 > Oracle >>

oracle 对一张表里一个字段的内容进行反复查询的最有效方法

oracle 数据库 中,有两张表unit和corp_base, 其中unit表字段有id,name 而corp_base字段有id,corp_type。两张表的ID是关联的。 我想得到这样一个结果 unit.id,unit.name,(corp_base.corp_type=1),(corp_base.corp_type=2),(corp_base.corp_type=3),(corp_base.corp_type=4),(corp_base.corp_type=5),...,(corp_base.corp_type=11) 我开始用的select unit.id,unit.name,A.type,B.type……,K.type from unit left outer join corp_base A on unit.id=A.id and A.corp_type=1 left outer join corp_base B on unit.id=B.id and B.corp_type=1……如此循环下去,但是这样要反复地查询corp_base十一次之多,但理论上只需要查询到了一次。能不能做到只查询corp_base这一张表一次呢?拜过各位大侠帮把手,在线等。
追问:ID  NAME       TYPE 1   TYPE2   TYPE3    TYPE4……  TYPE11
 1   X安全局     1,2          1,2   
 2   X部门                       2,4,11                   2,4,11    ...      2,4,11
这是我用提问里面的方法得到的(为了提问有简化),虽然达到了我要的结果,但是数据一多,效率就很慢。如第一条数据,corp_base.corp_type=1,2,那么只在type1和type2里面有显示。因为一些需要,我需要将corp_base.corp_type内容为不同值时增加出一列来,新增的一列显示的内容依然是corp_base.corp_type原来的内容。
答案:你想要什么结果详细说下,举个例子最好,另最好说下oracle版本
其他:,(corp_base.corp_type=1),(corp_base.corp_type=2),(corp_base.corp_type=3),(corp_base.corp_type=4),(corp_base.corp_type=5)这里仅仅是想显示corp_base.corp_type的不同参数吗?还是求出当corp_base.corp_type等于不同值时候的详细数据? 

上一个:oracle的到实例的代理连接不可用是什么意思
下一个:oracle怎样区分表和视图

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,