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
490 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!

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