【发布时间】:2017-06-29 05:31:02
【问题描述】:
我想确保在一段 Oracle SQL 代码中保持一对多关系。代码如下所示: SQL 的第一部分通过仅获取一列 cont_id 并将其分组以使其每行一个 ID 来创建视图 cont_ID_group。
第二个视图对 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
【问题讨论】:
-
那么....你有问题吗?
-
是的,我想知道我是否保持一对多的关系。
-
...哪些列之间的一对多关系?您确实明白我们不能神奇地窥探您的数据库并查看您的数据,对吗?我们也看不到您从中构建数据的表之间的任何实体关系。
-
在最终选择语句中的 cont_id 列之间
-
好的...为什么不在结果数据中进行必要的聚合(将其保存到表中之后)并找出答案? 您希望我们如何神奇地为您做到这一点???