oracle关于select主句里面嵌套select子查询是不是写得不太规范,结构性不好?
有时候取数据会从多张表里面找需要的东西,有时候会第一习惯的把一些需要的字段写在select主句里面,后来学习oracle的时候,李兴华老师对子查询关于在select里面嵌...
有时候取数据会从多张表里面找需要的东西,有时候会第一习惯的把一些需要的字段写在select主句里面,后来学习oracle的时候,李兴华老师对子查询关于在select里面嵌套子查询认为有点没事找事,我想了下可能也是这样的,因为用字段名可能结构更好点,然后把条件都放进where主句里面,但是有的这么做就比较困难的感觉。我有一段如下:
select b.lan_name 地市,
(SELECT m.region_name
FROM channel.common_region m
where a.common_region_id = m.region_id) 县,
(SELECT org_name
FROM channel.organization n
where n.party_id = country_id) 乡镇,
a.circle_code 商圈集团视图编码,
circle_name 商圈名称,
a.circle_id,
circle_point 商圈原点,
circle_scope 商圈地址,
(SELECT attr_value_name
FROM channel.attr_value
where attr_id = 1020
and attr_value = circle_type) 商圈类型,
(SELECT attr_value_name
FROM channel.attr_value
where attr_id = 94031
and attr_value = circle_level) 商圈等级,
(SELECT staff_name
FROM channel.staff_position m, channel.staff n
where m.party_role_id = n.staff_id
and m.staff_pos_id = circle_person) 商圈渠道经理,
mobile 联系电话
from channel.chn_biz_circle a, channel.rr_lan b
where status = 1000
and circle_level = 5
and a.lan_id = b.lan_id;
虽然有好几个子查询在select里面,但是关联表又比较多,貌似不好统一把条件限制放到后面去,怎么优化一下,看上去去更有结构感呢?还是说这样写其实没有什么结构不好的,老师说得太绝对了? 展开
select b.lan_name 地市,
(SELECT m.region_name
FROM channel.common_region m
where a.common_region_id = m.region_id) 县,
(SELECT org_name
FROM channel.organization n
where n.party_id = country_id) 乡镇,
a.circle_code 商圈集团视图编码,
circle_name 商圈名称,
a.circle_id,
circle_point 商圈原点,
circle_scope 商圈地址,
(SELECT attr_value_name
FROM channel.attr_value
where attr_id = 1020
and attr_value = circle_type) 商圈类型,
(SELECT attr_value_name
FROM channel.attr_value
where attr_id = 94031
and attr_value = circle_level) 商圈等级,
(SELECT staff_name
FROM channel.staff_position m, channel.staff n
where m.party_role_id = n.staff_id
and m.staff_pos_id = circle_person) 商圈渠道经理,
mobile 联系电话
from channel.chn_biz_circle a, channel.rr_lan b
where status = 1000
and circle_level = 5
and a.lan_id = b.lan_id;
虽然有好几个子查询在select里面,但是关联表又比较多,貌似不好统一把条件限制放到后面去,怎么优化一下,看上去去更有结构感呢?还是说这样写其实没有什么结构不好的,老师说得太绝对了? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询