Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengambil Gambar Terkini untuk Setiap Penjual Menggunakan Laravel Eloquent?

Bagaimana untuk Mengambil Gambar Terkini untuk Setiap Penjual Menggunakan Laravel Eloquent?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 13:55:02179semak imbas

How to Fetch the Latest Snapshot for Each Seller Using Laravel Eloquent?

Pertanyaan Fasih untuk Memilih Baris Terkini Dihimpunkan Mengikut Penjual

Memandangkan jadual yang mengandungi maklumat berkaitan penjual termasuk cap masa yang dicipta, selalunya perlu dapatkan hanya entri terbaharu untuk setiap penjual. Tugasan ini boleh dicapai dengan berkesan menggunakan Laravel Eloquent.

Untuk mencapainya, kami boleh menggunakan subquery MySQL yang mengenal pasti baris terkini untuk setiap seller_id menggunakan gabungan kiri dan padanan NULL. Subquery ini kemudiannya boleh digunakan bersama-sama dengan Eloquent untuk mendapatkan semula data yang dikehendaki.

Dalam SQL, pertanyaan akan kelihatan seperti ini:

<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

Diterjemahkan ke dalam Laravel Eloquent, pertanyaan itu akan menjadi ditulis seperti berikut:

<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>

Pertanyaan ini mendapatkan semula baris petikan terbaharu untuk setiap seller_id unik menggunakan subquery, memastikan bahawa hasil yang dikembalikan mewakili maklumat yang paling terkini untuk setiap penjual.

Atas ialah kandungan terperinci Bagaimana untuk Mengambil Gambar Terkini untuk Setiap Penjual Menggunakan Laravel Eloquent?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn