Syntax error: Unexpected keyword LEFT
テーブルを LEFT OUTER JOIN
で結合しようとしたら発生したこのエラー。
一体何が原因で起こっているのか。
今回はBigQueryで「Syntax error: Unexpected keyword LEFT」が出る原因について解説する。
この記事を書いている人
記事を読むメリット
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」を再現することができた。
テーブル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が実行できる。
,
なんで付けちゃったんだろう。テーブル1,テーブル2
とSQLを書くので、そこからJOIN結合にSQLを変更すると ,
が残してしまってエラーになることがありますね。SQL文を修正するときに注意しなければいけないわけね。
他にもSQLのちょっとしたテクニックについてまとめているので、もし気になったら見てみて欲しい。
あわせて読みたい