助け合いフォーラム
Oracle Master Silver SQL 2019(1Z0-071)
問題ID : 26502
なぜ、SELECT句に表接頭辞がついていない列名が指定されているのにエラーにならないのでしょうか。
M
Mottchan
投稿日 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;
q
quensan
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つ以上の表の中で、ユニークな列名であれば表接頭辞はいらないんですね。 大変参考になります。ありがとうございます。