1
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.

複数のテーブルを結合した上でGroup Byを使用する際に詰まったところ

Posted at

なぜこの記事を書こうと思ったか

eager_loadで結合されたテーブルに対して集合関数を使用した際に、少しつまったので記事にしました。

結論

eager_loadは使用しない!

なぜ

eager_loadは他のモデルに対して、検索や並び替えを行いたい時に使用します。ですが、groupメソッドを使用するさいはエラーが発生します。

エラーの理由はeager_loadは結合した全ての列を取得してきます。しかしSQLではGROUP BYを使用したときは取得する列として指定できるのは、GROUP BYで指定したものか集合関数を使用したものになります。

解決方法

では、他のモデルに対して検索や並び替えを行いたい。でもgroupメソッドも使用したい。そんな時はどうすれば良いでしょうか? left_joinメソッドを使用してください!

1
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
1
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?