販売者別にグループ化された最新の行を選択するための雄弁なクエリ
created_at タイムスタンプを含む販売者関連情報で構成されるテーブルがある場合、多くの場合、次のことが必要になります。各販売者の最新のエントリのみを取得します。このタスクは、Laravel Eloquent を使用して効果的に実行できます。
これを達成するには、左結合と NULL マッチングを使用して各 sell_id の最新の行を識別する MySQL サブクエリを使用できます。このサブクエリを Eloquent と組み合わせて使用すると、目的のデータを取得できます。
SQL では、クエリは次のようになります:
select s.*
from snapshot s
left join snapshot s1 on s.seller_id = s1.seller_id
and s.created_at Laravel Eloquent に翻訳すると、クエリは次のように記述されます:
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 whereNull('s1.seller_id')
->get();
このクエリは、サブクエリを使用して各固有の sell_id の最新のスナップショット行を取得し、返された結果が各販売者の最新情報を表すことを保証します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3