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を体系的に学んだ方が良さそうだ。