助け合いフォーラム

Oracle DB

Oracle Master Silver SQL 2019(1Z0-071)
問題ID : 26502

なぜ、SELECT句に表接頭辞がついていない列名が指定されているのにエラーにならないのでしょうか。

投稿日 2023/01/25

タイトルの通りです。もし、わかる方いたらお願いします。

SELECT employee_name, department_name, job_name
FROM departments d JOIN employees e
 ON d.department_id = e.department_id JOIN jobs j
 ON e.job_id = j.job_id;

2023/01/26 12:22

ID:26499の参考に次の説明があります。

ON句を使用した結合では、結合する2つの表にある同じ名前の列をSELECT句やWHERE句に指定する場合は、必ず表接頭辞を使用して列を指定しなければなりません。

「結合する2つの表にある同じ名前の列をSELECT句やWHERE句に指定する場合は、必ず表接頭辞を使用する」なので、
逆に言えば、結合する表にある同じ名前の列をSELECT句やWHERE句に指定しない場合は、接頭辞は省略できます。

上記SQL文のSELECT句のemployee_name, department_name, job_nameはそれぞれの表にしか存在せず、複数の表で同じ名前の列はありませんね。


コメント

M Mottchan

2023/01/27 14:19

2つ以上の表の中で、ユニークな列名であれば表接頭辞はいらないんですね。 大変参考になります。ありがとうございます。

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?