这个问题在这里已经有了答案:
错误报告-ora-25155:自然联接中使用的列不能有限定符25155。00000-“自然联接中使用的列不能有限定符”(1个答案)
9个月前关门了。
--我正在尝试为下面所示的表创建一个视图,但是我的尝试没有成功。我正在使用oracle sql developer!!错在哪里
CREATE VIEW student_view AS
SELECT Student.*, Course.*, Grade.* FROM (Student NATURAL LEFT OUTER JOIN Grade NATURAL LEFT OUTER JOIN Course)
UNION ALL
SELECT Student.*, Course.*, Grade.* FROM (Course NATURAL LEFT OUTER JOIN Grade NATURAL LEFT OUTER JOIN Student) WHERE Student.StudentID is NULL
;
CREATE TABLE Student(
StudentID INT PRIMARY KEY NOT NULL,
Name CHAR(50),
Address CHAR(50),
GradYear INT
);
-- create table Grade
CREATE TABLE Grade(
CName CHAR(50) NOT NULL,
StudentID INT NOT NULL,
CGrade CHAR(2),
PRIMARY KEY(CName, StudentID)
);
-- create table Course
CREATE TABLE Course(
CName CHAR(50) PRIMARY KEY NOT NULL,
Department CHAR(50),
Credits INT
);
3条答案
按热度按时间7dl7o3gd1#
应该先创建基础表,然后再将它们组合到视图中。
mwngjboj2#
请按照下面的顺序,
v2g6jxz63#
修正版本:
按正确顺序定义的表
改变
CHAR
至VARCHAR2
添加了外键约束(继承数据类型)删除了不允许的表别名
NATURAL JOIN
语法从视图中删除多余的支架。
table:
查看:
再补充一句,
NATURAL JOIN
在真正的代码中从来都不是个好主意。