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!