Sous-requête dans Laravel WHERE IN Clause
Dans Laravel, la création d'une requête qui récupère les données où le champ ID est inclus dans une sous-requête peut être atteint efficacement. Bien qu'une opération JOIN suffise également, cet article se concentre sur l'optimisation des performances en utilisant une sous-requête dans la clause WHERE IN.
Considérez la requête suivante :
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
Pour répliquer cette requête dans Laravel , utilisez le code suivant :
Products::whereIn('id', function($query){ $query->select('paper_type_id') ->from(with(new ProductCategory)->getTable()) ->whereIn('category_id', ['223', '15']) ->where('active', 1); }) ->get();
En incorporant une sous-requête dans la clause WHERE IN, cette instruction exécute efficacement l'opération de recherche et de récupération requise. Cette approche est particulièrement bénéfique pour les applications sensibles aux performances où la minimisation des appels à la base de données est cruciale.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!