DB

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

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のちょっとしたテクニックについてまとめているので、もし気になったら見てみて欲しい。

ITipsと同じようなブログを作る方法

ブログに興味がありますか?

もしブログに興味がある場合は↓このページ↓を参考にすれば、ITipsと同じ構成でブログを作ることができます

サーバー、ドメイン、ASPと【ブログに必要なものは全て】このページに書きました。
同じ構成でブログ作るのはいいけど、記事はマネしないでネ (TДT;)

ランキング参加中

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

他にもブログやSNSで紹介してくれると励みになります。

はてブのコメントで酷評されると泣きます(´;ω;`)

-DB
-,

© 2024 ITips