Oracle
 sql >> Base de données >  >> RDS >> Oracle

Rapport d'erreur - ORA-25155 :la colonne utilisée dans la jointure NATURAL ne peut pas avoir le qualificatif 25155. 00000 - la colonne utilisée dans la jointure NATURAL ne peut pas avoir le qualificatif

Comme d'autres l'ont mentionné, les jointures naturelles ont toujours été une mauvaise idée. Que faire si quelqu'un ajoute une description colonne à la fois COURSE et GRADE ? Quoi qu'il en soit, les colonnes utilisées dans une jointure naturelle ne peuvent pas être qualifiées avec un alias de table.

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 );

Requête :

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

Créer une vue :

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;

Suite sur votre autre question...