Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Memilih Baris dengan `created_at` Maksimum untuk Setiap `id_penjual` Unik dalam Laravel Eloquent?
Laravel Eloquent: Pilih Baris dengan Maksimum Created_at
Dalam Laravel Eloquent, anda mungkin menghadapi senario di mana anda perlu memilih semua baris dengan maksimum dicipta_pada nilai untuk setiap penjual_id unik dalam jadual. Begini cara anda boleh mencapai ini:
Menggunakan Raw SQL Query
Satu pendekatan ialah menggunakan pertanyaan SQL mentah, yang mungkin lebih cekap untuk keadaan tertentu:
<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
Menggunakan Pembina Pertanyaan
Sebagai alternatif, anda boleh menggunakan pembina pertanyaan Laravel untuk pendekatan yang lebih berorientasikan objek:
<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>
Kedua-dua kaedah akan kembalikan koleksi objek yang mewakili baris terkini untuk setiap seller_id unik dalam jadual syot kilat.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris dengan `created_at` Maksimum untuk Setiap `id_penjual` Unik dalam Laravel Eloquent?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!