LEFT JOINでKey取得する方法(ORA-00904 %s: invalid identifierでハマった)

LEFT JOINでKeyを取得する際に少々ハマったので記事に実施方法を書きます。

JOINしようと思い、LEFT JOINをした。そして、Keyにした項目も取得したかった。

そしたらこんなエラーが出た。
ORA-00904: “T_SAMPLE_INFO”.”SAMPLE_ID”: ¿¿¿¿¿¿¿¿¿
00904. 00000 – “%s: invalid identifier”
*Cause:
*Action:
行5 列1でエラー

実行したSQLはこれ。
SELECT
SAMPLE_TYPE,
SAMPLE_ID,
SAMPLE_DATE
FROM
T_SAMPLE_INFO b LEFT JOIN T_SAMPLE2_INFO p
ON
b.SAMPLE_ID = p.SAMPLE_ID;

エラー内容的に、どちらのテーブルのSAMPLE_IDだか不明だったためかと思ったので、少し修正して実行。
これでもエラー。
SELECT
SAMPLE_TYPE,
T_SAMPLE_INFO.SAMPLE_ID,
SAMPLE_DATE
FROM
T_SAMPLE_INFO b LEFT JOIN T_SAMPLE2_INFO p
ON
b.SAMPLE_ID = p.SAMPLE_ID;

もしかして、テーブルを選択するFROMの方が先に実行されて、定義済みのテーブルは再指定してはいけないのかと思い、少し修正して実行。

これだと上手くいった。
SELECT
SAMPLE_TYPE,
b.SAMPLE_ID,
SAMPLE_DATE
FROM
T_SAMPLE_INFO b LEFT JOIN T_SAMPLE2_INFO p
ON
b.SAMPLE_ID = p.SAMPLE_ID;

Web上の情報を少し探してみたが、見当たらなかった。
SQLの基本過ぎてみんな書かないのかな。SQLを体系的に学んだ方が良さそうだ。

Let's share SNS