Eloquentを用いたリレーションテーブルにおいて、効果的なサブクエリの使い方を紹介します。 リレーショナルなテーブル扱う場合にはN+1問題は常に意識されるべきであり、Eager Loadingを使ったクエリの削減は誰もが行なっているでしょう。 Laravelにおいてもwithメソッドを使うことで簡単にEager Loadingが行えますが、1対多 (hasMany)や多対多 (belongsToMany)の関係においてはサブクエリを使うことでパフォーマンスが改善され、システムの見通しがとてもよくなる場合があります。 要件 例として、ユーザーがログインした時にログイン履歴を残すシステムがあり、ユーザー一覧を表示するページで、ユーザー情報に加えて最終ログインデータを表示させるものとします。 Name Email LastLogin
![[Laravel] Eloquentでのサブクエリの有効な使い方](https://cdn-ak-scissors.b.st-hatena.com/image/square/43c5acf5c2c9683ace5f2b22e2200de523befcd9/height=288;version=1;width=512/https%3A%2F%2Fimages.ctfassets.net%2Ffb7i8vlh2m9x%2F1Zo9TCh1JU25V9Bmw5oVqB%2F47fd9634010a52484d51f213b26f00ef%2Flaravel-using-subquery.png)