Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menggunakan Subqueries dengan Cekap dengan `WHERE IN` dalam Laravel untuk Menapis Data?

Bagaimanakah Saya Boleh Menggunakan Subqueries dengan Cekap dengan `WHERE IN` dalam Laravel untuk Menapis Data?

Susan Sarandon
Lepaskan: 2024-12-02 03:04:10
asal
447 orang telah melayarinya

How Can I Efficiently Use Subqueries with `WHERE IN` in Laravel to Filter Data?

Subkueri dengan Klausa 'WHERE IN' dalam Laravel

Dalam Laravel, mencipta subquery dalam klausa 'WHERE IN' adalah cekap cara untuk menapis hasil berdasarkan data daripada jadual yang berkaitan. Mari kita periksa senario tertentu:

Anda ditugaskan untuk mengambil produk berdasarkan kategorinya. Pertanyaan hendaklah mengandungi lajur seperti ID, nama dan status dan produk hendaklah tergolong dalam kategori tertentu dengan ID '223' atau '15'.

Pertanyaan Asal:

SELECT 
    `p`.`id`,
    `p`.`name`, 
    `p`.`img`, 
    `p`.`safe_name`, 
    `p`.`sku`, 
    `p`.`productstatusid` 
FROM `products` p 
WHERE `p`.`id` IN (
    SELECT 
        `product_id` 
    FROM `product_category`
    WHERE `category_id` IN ('223', '15')
)
AND `p`.`active`=1
Salin selepas log masuk

Penggunaan Setara Laravel Penutupan:

Products::whereIn('id', function($query){
    $query->select('paper_type_id')
    ->from(with(new ProductCategory)->getTable())
    ->whereIn('category_id', ['223', '15'])
    ->where('active', 1);
})
->get();
Salin selepas log masuk

Penjelasan:

Fungsi 'whereIn' mengambil penutupan sebagai hujah, membolehkan anda mentakrifkan subkueri dalam.

  • from(): Memilih jadual dari mana subquery akan dapatkan semula keputusan.
  • select(): Menentukan lajur yang akan dikembalikan daripada subquery.
  • whereIn() dan where(): Penapis keputusan daripada subkueri berdasarkan kriteria yang ditetapkan.

Faedah Penggunaan Penutupan:

  • Meningkatkan kebolehbacaan dan kebolehselenggaraan kod.
  • Membenarkan subkueri yang lebih kompleks yang melibatkan berbilang syarat atau gabungan.
  • Meningkatkan prestasi dengan mengurangkan bilangan panggilan pangkalan data berbanding menggunakan berbilang gabungan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Subqueries dengan Cekap dengan `WHERE IN` dalam Laravel untuk Menapis Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan