ERROR: missing FROM-clause entry for table (Postgresql)

ERROR: missing FROM-clause entry for table (Postgresql)

この記事を読むのに必要な時間は約 3 分です。

ERROR: missing FROM-clause entry for table

たまにやってる超個別記事

久しぶりのエラー紹介記事です!

 

Postgresql でこのエラーが出て困ったことはありませんか?

ERROR: missing FROM-clause entry for table 

たまーに出てて、原因がわから無いけど気づいたら修正されてて、結局なんだったんだ?

みたいなエラーってありませんか?

今回、見事にあほなことしてて原因がわかりましたので紹介です。

 

SELECT   AA.datetime   FROM  history  AA
left   outer  join  history  BB
on
AA.id=BB.id  where  EE.id='2019-01-14'

原因

まぁ、原因が分かった後ですから、私はみればわかるんですけどね。

わかっていない状況だと本当にカオスな状況のクエリを書いているのではないでしょうか?

このサンプルで出している図はとってもシンプルに書いているのでよく見ればこの図だけで

エラーの原因がわかりますよ

(´◉◞౪◟◉)

(´◉◞౪◟◉)

(´◉◞౪◟◉)

(´◉◞౪◟◉)

ほい!

答え合わせです。

原因は

EE.id=’2019-01-14′

です。

わかりますか?

きっとこれだけ見てもわからないとおもいますよ。

でも、こうやればわかります!

AA.id=BB.id where EE.id=’2019-01-14′

どうでしょうか?

答えは、EE がそもそも存在していないことですね!

存在しない仮想テーブルをwhere区に指定していることが原因でした。

同じエラーが出ている人はこのような感じで存在しないテーブルを指定していたり、

もしくは存在しているがカラムが存在しないような条件をしていしていないか確認してみましょう!

 

(´◉◞౪◟◉)

剽窃チェックをまとめました。

剽窃はやってはいけません。

じっくり見ればすぐわかります。

それらをわかりやすく解析してくれるチェッカーの特集です。

こちらより

 

 

 

 

 

タイトルとURLをコピーしました