在Oracle中使用多表连接创建视图
2014-05-03 16:00
411 查看
有一个表A:ID,DATE,NAME(ID为主键);
表B:ID,DATE,AGE(ID,DATE为主键);
表C:ID,DATE,PID,SALARY(ID,DATE,PID为主键);
根据这三个表来创建一个视图,该视图以表A为根,得到以下信息
ID,DATE,NAME,AGE,SALARY
如果是这样建该如何完成:
CREATE OR REPLACR VIEW V_ABC
(ID,DATE,NAME,AGE,SALARY)
AS
SELECT
a.ID,
a.DATE,
a.NAME,
b.AGE,
c.SALARY
FROM A a,B b,C c
WHERE a.ID = b.ID(+) AND a.ID = c.ID(+) AND a.DATE = b.DATE(+) AND a.DATE = c.DATE(+)
这样做并没有达到效果,该如何改进。
问题补充:
如果用联结,那是不行的,我的要求是:
CREATE OR REPLACR VIEW V_ABC
(ID,DATE,NAME,AGE,SALARY)
AS
SELECT
a.ID,
a.DATE,
a.NAME,
b.AGE,
c.SALARY
FROM A a,B b,C c
A表为主架构,将B、C表中符合条件的信息插入到视图的相应位置,如何设计???
表B:ID,DATE,AGE(ID,DATE为主键);
表C:ID,DATE,PID,SALARY(ID,DATE,PID为主键);
根据这三个表来创建一个视图,该视图以表A为根,得到以下信息
ID,DATE,NAME,AGE,SALARY
如果是这样建该如何完成:
CREATE OR REPLACR VIEW V_ABC
(ID,DATE,NAME,AGE,SALARY)
AS
SELECT
a.ID,
a.DATE,
a.NAME,
b.AGE,
c.SALARY
FROM A a,B b,C c
WHERE a.ID = b.ID(+) AND a.ID = c.ID(+) AND a.DATE = b.DATE(+) AND a.DATE = c.DATE(+)
这样做并没有达到效果,该如何改进。
问题补充:
如果用联结,那是不行的,我的要求是:
CREATE OR REPLACR VIEW V_ABC
(ID,DATE,NAME,AGE,SALARY)
AS
SELECT
a.ID,
a.DATE,
a.NAME,
b.AGE,
c.SALARY
FROM A a,B b,C c
A表为主架构,将B、C表中符合条件的信息插入到视图的相应位置,如何设计???
相关文章推荐
- 使用scott登录Oracle以后,创建视图,提示“权限不够”,怎么解决?
- 安装完Oracle后 使用dbca创建数据库 弹出ORA-01092: ORACLE 实例终止,强制断开连接
- 使用Oracle SQLDeveloper连接数据库并创建用户
- ORACLE 创建与使用视图
- 使用Oracle SQLDeveloper连接数据库并创建用户
- 使用Oracle SQLDeveloper连接数据库并创建用户
- 使用Oracle SQLDeveloper连接数据库并创建用户
- 使用Oracle SQLDeveloper连接数据库并创建用户
- (已解决)使用pl/sql的视图模式来创建sqlserver的dblink提示无法连接到“sa”
- ORACLE 创建与使用视图
- 使用Oracle SQLDeveloper连接数据库并创建用户
- 使用Oracle创建数据库,SQL developer连接数据库简要步骤
- [转]使用Oracle SQL Developer连接数据库并创建用户
- oracle 的一些平时常用知识积累(从创建空间、数据库备份和导入、plsql连接使用全过程)
- ORACLE 创建与使用视图
- oracle创建和使用视图
- Oracle--SQL Developer创建连接及使用
- Oracle 创建和使用视图
- oracle创建与使用视图
- 使用Oracle SQLDeveloper连接数据库并创建用户