sql >> データベース >  >> RDS >> Oracle

エラーレポート-ORA-25155:NATURAL結合で使用されている列に修飾子25155を含めることはできません。00000-NATURAL結合で使用されている列に修飾子を含めることはできません

    他の人が述べているように、自然結合は常に悪い考えでした。誰かがdescriptionを追加した場合はどうなりますか 両方のCOURSEへの列 およびGRADE ?とにかく、自然結合で使用される列は、テーブルエイリアスで修飾できません。

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

    クエリ:

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

    ビューを作成する:

    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;
    

    その他の質問に続く...




    1. SQLServerクエリでNULLを0に置き換える

    2. TO_DATE関数のタイムゾーン解析エラー

    3. Mysql-UNIXタイムスタンプから年を選択

    4. データベースを「正規化」するとはどういう意味ですか?