【Oracle】建立关联三个表的视图
发布时间:2020-12-12 14:00:58 所属栏目:百科 来源:网络整理
导读:一、背景 在我们的业务中,经常会有这样的需求:将某对象集合以列表的形式展示,但被展示的对象信息可能来自多个表,这时候,我们为了减少在系统对数据的处理,提高查询速度,会通过建立视图来解决这类问题。 二、具体代码 关联的三个表为:T_A,T_B,T_C CR
一、背景 在我们的业务中,经常会有这样的需求:将某对象集合以列表的形式展示,但被展示的对象信息可能来自多个表,这时候,我们为了减少在系统对数据的处理,提高查询速度,会通过建立视图来解决这类问题。 二、具体代码 关联的三个表为: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,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语句要加括号,相当于,以查询到的某条信息的值做该字段的值。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |