DB

BigQueryで「Syntax error: Unexpected keyword LEFT」が出る原因


Syntax error: Unexpected keyword LEFT

テーブルを LEFT OUTER JOIN で結合しようとしたら発生したこのエラー。

一体何が原因で起こっているのか。

今回はBigQueryで「Syntax error: Unexpected keyword LEFT」が出る原因について解説する。

この記事を書いている人


からさん
システムエンジニア、AIエンジニアと、IT業界で10年以上働いている中堅。PythonとSQLが得意。最近GCPを色々と習得中。

記事を読むメリット

BigQueryで「Syntax error: Unexpected keyword LEFT」が出る原因がわかる


エラーメッセージ


まずエラーメッセージを見てみる。

Syntax error: Unexpected keyword LEFT

Syntax error これは構文エラー

意味としては「SQL文の書き方が間違っている」ということ。


そして Unexpected keyword LEFT

これはシステムが想定していない場所で LEFT キーワードが使われていることを意味している。

ここからエラーの原因をどのように理解すればいいのか。



BigQueryで「Syntax error: Unexpected keyword LEFT」が出る原因


BigQueryで「Syntax error: Unexpected keyword LEFT」が出る原因は、JOINする左側のテーブル名の後ろに , を付けているから


実際にSQLで再現してみる。

SELECT * FROM
project.test.tmp as tbl1,
LEFT OUTER JOIN
project.test.tmp_sample as tbl2
ON
tbl1.col = tbl2.col

結果

Syntax error: Unexpected keyword LEFT at [3:1]

このように「Syntax error: Unexpected keyword LEFT」を再現することができた。


SQLを実行するマシンの気持ちになると
からさん
少年
テーブル1 , と来たら次は テーブル2 が来るはずだろ!
なんで LEFT が来るんだよ!
処理できねーよ!
という感じでエラーになってるわけですね
からさん



回避方法


「Syntax error: Unexpected keyword LEFT」を回避するにはエラーの原因である , を削除すれば良い。

SELECT * FROM
project.test.tmp as tbl1
LEFT OUTER JOIN
project.test.tmp_sample as tbl2
ON
tbl1.col = tbl2.col



まとめ


今回はBigQueryで「Syntax error: Unexpected keyword LEFT」が出る原因について紹介した。

原因はJOINする左側のテーブル名の後ろに , を付けているから

修正するにはテーブルの後の , を削除すると正常にSQLが実行できる。


少年
そもそもなんで , なんで付けちゃったんだろう。
元々WHERE句で結合するときは テーブル1,テーブル2 とSQLを書くので、そこからJOIN結合にSQLを変更すると , が残してしまってエラーになることがありますね。
からさん
少年
なるほど。
SQL文を修正するときに注意しなければいけないわけね。



他にもSQLのちょっとしたテクニックについてまとめているので、もし気になったら見てみて欲しい。

KRSW

駆け出し機械学習エンジニア。機械学習、DB、WEBと浅く広い感じ。 Junior machine learning engineer. Not a specialist but a generalist who knows DB, WEB too.

役に立ったらシェアしてくれると励みになります。

にほんブログ村 IT技術ブログへ

-DB
-,

Translate »

© 2021 ITips