3,491
社区成员
发帖
与我相关
我的任务
分享
SQL> select b.N_ID, a.C_DZM, a.C_NAME, a.N_ID
2 from TB_SYSTEM_DZM_DD a, tb_user_dzm_data b
3 where substr(a.c_dzm, 1, 2) =
4 (select substr(a.c_dzm, 1, 2)
5 from TB_SYSTEM_DZM_DD a, tb_user_dzm_data b
6 where a.n_id = b.n_id
7 and b.c_userid = 'cg143')
8 ;
N_ID C_DZM C_NAME N_ID
------------------- ------------ -------------------------------------------------------------------------------- --------------------
2 110000 北京 2
2 110100 市辖区 3
2 110101 东城区 4
2 110102 西城区 5
2 110103 崇文区 6
2 110104 宣武区 7
2 110105 朝阳区 8
2 110106 丰台区 9
2 110107 石景山区 10
2 110108 海淀区 11
2 110109 门头沟区 12
2 110111 房山区 13
2 110112 通州区 14
2 110113 顺义区 15
2 110114 昌平区 16
2 110200 县 17
2 110224 大兴县 18
2 110226 平谷县 19
2 110227 怀柔县 20
2 110227 怀柔县 20
20 rows selected
--在自己机器上测试了下,可以通过,去试下吧。希望以后不要在说类似的话()。
select tt2.N_ID,tt1.C_DZM,C_NAME from TB_SYSTEM_DZM_DD tt1,
(select N_ID,C_DZM from TB_SYSTEM_DZM_DD
where N_ID in (select N_ID from TB_USER_DZM_DATA
where C_USERID='cg143')) tt2
where substr(tt1.c_DZM,1,3)=substr(tt2.c_DZM,1,3)
--意思就是查TB_SYSTEM_DZM_DD表中和TB_USER_DZM_DATA 表(N_ID)对应C_Name所管辖的所有区域
--地区代码的前4位会一样吧,那就是'1001'代表北京,可能'1002'就是天津了,我的理解对?
select tt2.N_ID,tt1.C_DZM,tt1.C_NAME from tt1,
(select N_ID,C_Name from TB_SYSTEM_DZM_DD
where N_ID in select N_ID from TB_USER_DZM_DATA
and C_USERID='cg143') tt2
where substr(tt1,1,4)=sub(tt2,1,4)