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怎样区分表和视图