ホームページ > データベース > mysql チュートリアル > Laravel Eloquentを使用して、一意の販売者IDごとに最新の行のみを取得する方法は?

Laravel Eloquentを使用して、一意の販売者IDごとに最新の行のみを取得する方法は?

Mary-Kate Olsen
リリース: 2024-11-27 21:35:16
オリジナル
446 人が閲覧しました

How to Retrieve Only the Latest Rows for Each Unique Seller ID using Laravel Eloquent?

Laravel Eloquent: 最大の 'created_at' を持つすべての行を取得する

Laravel では、最新のもののみを取得する必要がある場合に共通の要件が発生します。特定の列の一意の値ごとに行。提供されているテーブルのような、各行が売上を表すテーブルでは、各販売者の最新の売上を取得したい場合があります。

Laravel Eloquent を使用してこれを実現するには、1 つのアプローチは、提供されているクエリを変更することです。質問:

$sales = Snapshot::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();
ログイン後にコピー

このクエリは、「スナップショット」テーブルのコピーに左結合を導入することによって、目的の結果を達成します。 「s1」。結合は「seller_id」列に基づいて実行され、「created_at」値を比較して各販売者の最新の行のみが確実に選択されるようにする条件が含まれています。

「whereNull」句は、各販売者のそれを保証します。販売者にとって、これより大きな「created_at」値を持つ後続の行はありません。これにより、一意の「seller_id」ごとに最大の「created_at」値を持つ行が識別されます。結果のクエリで「get()」を呼び出すと、販売者ごとにグループ化されたすべての最新の売上の配列が取得されます。

以上がLaravel Eloquentを使用して、一意の販売者IDごとに最新の行のみを取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート