【Oracle】建立关联三个表的视图

简介: 【Oracle】建立关联三个表的视图

一、背景

在我们的业务中,经常会有这样的需求:将某对象集合以列表的形式展示,但被展示的对象信息可能来自多个表,这时候,我们为了减少在系统对数据的处理,提高查询速度,会通过建立视图来解决这类问题。



二、具体代码

关联的三个表为:T_A,T_B,T_C

CREATE VIEW V_AGREEMENT_INFO AS SELECT
  ID,
  ORG_ID,
  ID AS PRJ_ID,
  PRJ_NAME,
  (
    (
      SELECT
        TASK_AGREEMENT_NO
      FROM
        T_B
      WHERE
        T_B.PRJ_ID = T_A. ID
    )
  ) AS CONTRACT_NO,
  'TASK' AS CONTRACT_TYPE,
  PRJ_NAME AS CONTRACT_NAME
FROM
  T_A
UNION
  SELECT
    ID,
    ORG_ID,
    PRJ_ID,
    (
      SELECT
        PRJ_NAME
      FROM
        T_A
      WHERE
        T_C.PRJ_ID = T_A. ID
    ) AS PRJ_NAME,
    CONTRACT_NO,
    CONTRACT_TYPE,
    CONTRACT_NAME
  FROM
    T_C


三、注意

1、在建立视图之前,先确定页面需要的展示具体的字段,以及该字段具体来着那张表;

2、确定该视图主要来自哪几张表的信息;

3、某字段信息需要展示在页面上,但在第一个表中没用有,只有第二个表有。该字段信息如果是默认为某个值,可以这样写:

'TASK' AS CONTRACT_TYPE


如果该字段的信息是从关联的别的表查询而来,可以这样写:

(SELECT PRJ_NAME FROM T_PM_PRJ_INFO WHERE T_PM_OTHER_CONTR_INFO.PRJ_ID = T_PM_PRJ_INFO.ID) AS PRJ_NAME



AS前的select语句要加括号,相当于,以查询到的某条信息的值做该字段的值。

















相关文章
|
存储 Oracle 关系型数据库
9-3 Oracle数据字典和动态性能视图介绍
9-3 Oracle数据字典和动态性能视图介绍
170 1
|
存储 SQL Oracle
Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
Oracle数据库批量删除表、视图、序列、存储过程、函数脚本
143 0
|
7月前
|
Oracle 关系型数据库 数据库
Oracle查询优化-复制表的定义及数据
【1月更文挑战第5天】【1月更文挑战第14篇】在Oracle数据库中,复制表定义和复制表数据是两个常见的操作。
115 1
|
7月前
|
消息中间件 关系型数据库 Kafka
实时计算 Flink版产品使用合集之oracle cdc 抽取新增一张表 可以从savepoint恢复吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
SQL Oracle 关系型数据库
[oracle]使用impdp导入数据时卡在视图
[oracle]使用impdp导入数据时卡在视图
269 2
|
6月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之oracle无主键的表支持同步吗如何实现
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
6月前
|
运维 DataWorks Oracle
DataWorks产品使用合集之在标准模式下,当同步Oracle的表或视图时,是否需要在源端的测试和生产环境中都存在要同步的表或视图
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
54 3
|
7月前
|
资源调度 Oracle 关系型数据库
实时计算 Flink版产品使用合集之同步Oracle数据时,一张表产生了大量的连接数,如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7月前
|
Oracle 关系型数据库 Java
Oracle 19c 查看隐含参数视图
Oracle 19c 查看隐含参数视图
107 7
|
7月前
|
SQL 存储 Oracle
Oracle中的Dual表:数据世界的“神奇小盒子”
【4月更文挑战第19天】Oracle的Dual表是一个虚拟表,仅含一行一列,常用于执行SQL函数、数据类型转换、测试语句和动态SQL。它是测试和便捷操作的工具,如获取当前日期(`SELECT SYSDATE FROM DUAL`)、数字转字符串(`SELECT TO_CHAR(12345) FROM DUAL`)。在存储过程、函数和触发器中也发挥重要作用,是数据库管理员的得力助手。

推荐镜像

更多