Maison > développement back-end > tutoriel php > Comment exécuter une sous-requête WHERE IN dans Laravel ?

Comment exécuter une sous-requête WHERE IN dans Laravel ?

Linda Hamilton
Libérer: 2024-12-30 10:04:10
original
436 Les gens l'ont consulté

How to Execute a Subquery WHERE IN Clause in Laravel?

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
Copier après la connexion

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();
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal