Laravel Eloquentで一意の「seller_id」ごとに最大の「created_at」を持つ行を選択する方法は?

Linda Hamilton
リリース: 2024-10-25 12:15:30
オリジナル
284 人が閲覧しました

How to Select Rows with the Maximum `created_at` for Each Unique `seller_id` in Laravel Eloquent?

Laravel Eloquent: 最大値 Created_at を持つ行を選択

Laravel Eloquent では、最大値を持つすべての行を選択する必要があるシナリオに遭遇する場合があります。テーブル内の一意の各eller_id の created_at 値。これを実現する方法は次のとおりです。

生の SQL クエリを使用する

1 つの方法は、生の SQL クエリを使用することです。これは、特定の状況ではより効率的である可能性があります。

<code class="sql">select s.*
from snapshot s
left join snapshot s1 on s.seller_id = s1.seller_id
and s.created_at < s1.created_at
where s1.seller_id is null
ログイン後にコピー

クエリ ビルダーの使用

あるいは、よりオブジェクト指向のアプローチとして Laravel のクエリ ビルダーを利用することもできます。

<code class="php"> DB::table('snapshot as s')
  ->select('s.*')
  ->leftJoin('snapshot as s1', function ($join) {
        $join->on('s.seller_id', '=', 's1.seller_id')
             ->whereRaw('s.created_at < s1.created_at');
   })
  ->whereNull('s1.seller_id')
  ->get();</code>
ログイン後にコピー

どちらのメソッドもスナップショット テーブル内の各固有の sell_id の最新の行を表すオブジェクトのコレクションを返します。

以上がLaravel Eloquentで一意の「seller_id」ごとに最大の「created_at」を持つ行を選択する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!