0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Laravel】SQL自体は正しいのに、クエリビルダのleftJoin使うとカラムが見つからないエラーになってしまう場合

Last updated at Posted at 2021-12-08

状況

joinとか使うSQLになると、select文の中のカラム指定では、
「hoge_table.name」や「hoge_table.age」のようにテーブル名と一緒にくっつけた名前になる場合があります。

laravelでsqlのクエリビルダのメソッドの中で「IFNULL」を使う場合は、普通に一つの文字列でやると失敗するので、バッククォートを使う必要がある。

もしカラム名のところがテーブル名無しの「age」だけとかならそのままバッククォート1つでいいが、テーブル名がくっつくタイプのものならそれぞれに分けてバッククォートつける必要があるのが注意。

anime-suko.php
        $result = モデル名::select([
            'hoge_table.id',
            'hoge_table.name',
            'hoge_table.age',
            DB::raw('IFNULL(`second_table`.`power`, 0)')
        ])
}

英語ですが、以下の記事にヒットしてよかった
https://stackoverflow.com/questions/45129228/mysql-join-unknown-column-in-field-list

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?