Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Fehlerbericht – ORA-25155:Spalte, die in NATURAL-Join verwendet wird, darf Qualifizierer 25155 nicht haben. 00000 – Spalte, die in NATURAL-Join verwendet wird, darf keinen Qualifizierer haben

Wie andere bereits erwähnt haben, waren natürliche Verbindungen schon immer eine schlechte Idee. Was passiert, wenn jemand eine description hinzufügt? Spalte zu beiden COURSE und GRADE ? Wie auch immer, Spalten, die in einem natürlichen Join verwendet werden, können nicht mit einem Tabellenalias qualifiziert werden.

create table student
( student_id integer primary key
, student_name varchar2(30) not null );

create table course
( course_id integer primary key
, course_name varchar2(30) not null );

create table grade
( student_id references student not null
, course_id  references course not null
, grade varchar2(3) not null );

Abfrage:

select student_id, student_name, course_id, course_name, grade
from   student 
       natural left join grade 
       natural left join course;

Erstellen Sie eine Ansicht:

create or replace view student_view as 
select course_id, student_id, student_name, grade, course_name
from   student 
       natural left outer join grade 
       natural left outer join course
union all
select course_id, student_id, student_name, grade, course_name
from   course 
       natural left outer join grade 
       natural left outer join student
where  student_id is null;

Fortsetzung zu Ihrer anderen Frage...