[跪求赐教] 有父子关系的两表关联查询有关问题
[跪求赐教] 有父子关系的两表关联查询问题
现有组织机构表:
create table T_ZZJG
(
ZZJGDM VARCHAR2(16) not null, -- 组织机构代码
ZZJGMC VARCHAR2(40) not null, -- 组织机构名称
SJJGDM VARCHAR2(40) -- 上级机构代码
)
人员表:
create table T_RY
(
RYDM VARCHAR2(10) not null, -- 人员代码
RYMC VARCHAR2(20) not null, -- 人员名称
ZZJGDM VARCHAR2(16) not null -- 人员所属组织机构代码
)
组织机构表内有父子关系, 每个组织机构下都可能有人员。
现在要查询出所有组织机构下有人员的组织机构记录和人员记录,怎么直接通过SQL语句实现或有什么其他好的方式实现。 跪求大神们赐教!!!
------解决方案--------------------
------解决方案--------------------
要查询出所有组织机构下有人员的组织机构记录和人员记录
能不能描述下这个,是什么效果,怎么展示的
现有组织机构表:
create table T_ZZJG
(
ZZJGDM VARCHAR2(16) not null, -- 组织机构代码
ZZJGMC VARCHAR2(40) not null, -- 组织机构名称
SJJGDM VARCHAR2(40) -- 上级机构代码
)
人员表:
create table T_RY
(
RYDM VARCHAR2(10) not null, -- 人员代码
RYMC VARCHAR2(20) not null, -- 人员名称
ZZJGDM VARCHAR2(16) not null -- 人员所属组织机构代码
)
组织机构表内有父子关系, 每个组织机构下都可能有人员。
现在要查询出所有组织机构下有人员的组织机构记录和人员记录,怎么直接通过SQL语句实现或有什么其他好的方式实现。 跪求大神们赐教!!!
------解决方案--------------------
select * from (
select ZZJGDM DM,ZZJGMC MC,SJJGDM SJ FROM T_ZZJG
WHERE ZZJGDM IN (SELECT ZZJGDM FROM FROM T_ZZJG T
CONNECT BY PRIOR SJJGDM=ZZJGDM
START WITH EXISTS (SELECT 1 FROM T_RY WHERE ZZJGDM=T.ZZJGDM))
UNION ALL
SELECT RYDM DM,RYMC MC,ZZJGDM SJ FROM T_RY
)
CONNECT BY PRIOR DM=SJ
START WITH SJ IS NULL
ORDER SIBLINGS BY DM
------解决方案--------------------
要查询出所有组织机构下有人员的组织机构记录和人员记录
能不能描述下这个,是什么效果,怎么展示的