Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Melaksanakan Subquery WHERE IN Klausa dalam Laravel?

Bagaimana untuk Melaksanakan Subquery WHERE IN Klausa dalam Laravel?

Linda Hamilton
Lepaskan: 2024-12-30 10:04:10
asal
436 orang telah melayarinya

How to Execute a Subquery WHERE IN Clause in Laravel?

Laravel Subquery Where In

Query:

Anda perlu melaksanakan pertanyaan berikut dalam Laravel:

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

Penyelesaian:

Untuk mencapai ini dalam Laravel menggunakan subquery, anda boleh menggunakan kod berikut:

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:

Kaedah whereIn membolehkan anda menentukan bahawa nilai lajur harus sepadan dengan mana-mana nilai dalam tatasusunan yang disediakan. Dalam kes ini, anda ingin memilih semua produk yang lajur idnya terdapat dalam lajur product_id jadual product_category, dengan lajur category_id adalah sama ada '223' atau '15' dan lajur aktif adalah sama dengan 1.

Kod yang disediakan menggunakan penutupan untuk menentukan subkueri. Dalam penutupan, anda mentakrifkan pertanyaan yang mendapatkan semula lajur product_id daripada jadual product_category. Pertanyaan kemudiannya menapis keputusan berdasarkan syarat yang ditentukan dan akhirnya mengembalikan nilai product_id yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Subquery WHERE IN Klausa dalam Laravel?. 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