Laravel-Unterabfrage Where In
Abfrage:
Sie müssen die folgende Abfrage ausführen 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
Lösung:
Um dies in Laravel mithilfe einer Unterabfrage zu erreichen, können Sie den folgenden Code verwenden:
Products::whereIn('id', function($query){ $query->select('paper_type_id') ->from(with(new ProductCategory)->getTable()) ->whereIn('category_id', ['223', '15']) ->where('active', 1); }) ->get();
Erklärung:
Mit der whereIn-Methode können Sie angeben, dass eine Spalte Der Wert sollte mit jedem Wert im bereitgestellten Array übereinstimmen. In diesem Fall möchten Sie alle Produkte auswählen, deren ID-Spalte in der Spalte „product_id“ der Tabelle „product_category“ vorhanden ist, wobei die Spalte „category_id“ entweder „223“ oder „15“ ist und die aktive Spalte gleich 1 ist.
Der bereitgestellte Code verwendet einen Abschluss, um die Unterabfrage zu definieren. Innerhalb des Abschlusses definieren Sie eine Abfrage, die die Spalte „product_id“ aus der Tabelle „product_category“ abruft. Die Abfrage filtert dann die Ergebnisse basierend auf den angegebenen Bedingungen und gibt schließlich die gewünschten Product_ID-Werte zurück.
Das obige ist der detaillierte Inhalt vonWie führe ich eine Unterabfrage WHERE IN-Klausel in Laravel aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!