Sous-requête Laravel Where In
Requête :
Vous devez exécuter la requête suivante dans 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
Solution :
Pour y parvenir dans Laravel en utilisant une sous-requête, vous pouvez utiliser 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();
Explication :
La méthode WhereIn permet de spécifier que la valeur d'une colonne la valeur doit correspondre à n’importe quelle valeur du tableau fourni. Dans ce cas, vous souhaitez sélectionner tous les produits dont la colonne id est présente dans la colonne product_id de la table product_category, où la colonnecategory_id est soit '223' soit '15' et la colonne active est égale à 1.
Le code fourni utilise une fermeture pour définir la sous-requête. Dans la fermeture, vous définissez une requête qui récupère la colonne product_id de la table product_category. La requête filtre ensuite les résultats en fonction des conditions spécifiées et renvoie enfin les valeurs product_id souhaitées.
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!