Exécution d'une sous-requête imbriquée dans Laravel avec WHERE IN
Dans Laravel, vous pouvez exécuter une sous-requête imbriquée à l'aide de la méthode WhereIn. Cette technique est souvent utilisée pour sélectionner des enregistrements en fonction de critères dérivés d'une sous-requête.
Pour effectuer la requête fournie dans la question, vous pouvez utiliser le code Laravel suivant :
Products::whereIn('id', function($query){ $query->select('product_id') ->from(with(new ProductCategory)->getTable()) ->whereIn('category_id', ['223', '15']) ->where('active', 1); }) ->get();
Dans ce code, la sous-requête interne sélectionne les valeurs product_id qui répondent aux critères spécifiés et les place dans une table temporaire. La requête externe utilise ensuite ces valeurs dans le cadre de sa clause WHERE IN pour récupérer les enregistrements de produit correspondants.
Cette approche est préférable à l'utilisation d'une jointure pour des raisons de performances, car la table temporaire générée par la sous-requête peut être utilisé plus efficacement par le moteur de base de donné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!