我想确保在整个Oracle SQL代码段中保持一对多的关系。代码如下所示: SQL的第一部分通过仅使用一列cont_id创建视图cont_ID_group,并将其分组以使其每行一个ID。
第二个视图与mix_id相同。视图AS_BUILT_DATA是是否维护一对多关系的第一个示例。我正在使用as_built_Groups视图来希望创建该关系。
最后一点代码是最重要的,因为它在我在ArcGIS中映射之前创建了最终数据集。我再次尝试通过将DATABASE_PROJECT_MAPPABLE视图和AS_BUILT_DATA与cont_ID_group视图相关联来维护一对多关系。
DATABASE_PROJECT_MAPPABLE和AS_BUILT_DATA有多对多的关系。
create or replace view cont_ID_group as
select cont_id
from DATABASE_PROJECT_MAPPABLE
group by cont_id
;
create or replace view as_built_Groups as
select t.mix_id
from SMGR.T_CONT_MIX_DSN t
group by t.mix_id
;
create or replace view AS_BUILT_DATA as
select d.cont_id,t.*
from SMGR.T_SUPERPAVE t
inner join as_built_Groups s
on t.mix_id = s.mix_id
inner join SMGR.T_CONT_MIX_DSN d
on d.mix_id = s.mix_id
;
select distinct t.*,
from DATABASE_PROJECT_MAPPABLE t inner join cont_ID_group i
on t.cont_id = i.cont_id inner join AS_BUILT_DATA s
on s.cont_id = i.cont_id
order by t.Corridor_RB,t.PROJECT_START,t.PROJECT_NUMBER
答案 0 :(得分:3)
视图不会强制实施关系。如果要维护(强制执行)一对多关系,则应在“父”表上创建PRIMARY KEY
,然后在子表上创建一个FOREIGN KEY
,引用该主键的主键。父表,