ホームページ > バックエンド開発 > PHPチュートリアル > Laravel Eloquentで各販売者の最新の行を取得するにはどうすればよいですか?

Laravel Eloquentで各販売者の最新の行を取得するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-25 16:15:02
オリジナル
896 人が閲覧しました

How to Retrieve the Latest Row for Each Seller in Laravel Eloquent?

Laravel Eloquent で各販売者 ID の最新の行を取得する

この記事では、Laravel Eloquent で一意の販売者ごとに最新の行を取得するという課題について説明します。データベーステーブル。この目標を達成するために、Laravel Eloquent ORM を使用したソリューションを検討します。

指定されたテーブルには、販売者 ID、金額、作成タイムスタンプなどの販売データが含まれています。特定の販売者の最新の行を取得するには、クエリを次のように記述できます。

<code class="php">$sales = Snapshot::where('seller_id', '=', 15)
->orderBy('created_at', 'DESC')
->first();</code>
ログイン後にコピー

この機能を拡張してすべての販売者の最新の行を取得するには、より高度なクエリを使用します。次のクエリは、サブクエリを利用して各販売者の最新の行を識別します:

<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(DB::raw('s.created_at < s1.created_at'));
})
->whereNull('s1.seller_id')
->get();</code>
ログイン後にコピー

Throughこのソリューションを使用すると、データベース テーブル内の各販売者の最新の行を効率的に取得でき、アプリケーションの最新データに簡単にアクセスできるようになります。

以上がLaravel Eloquentで各販売者の最新の行を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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