Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Unterabfragen mit „WHERE IN' in Laravel effizient zum Filtern von Daten verwenden?
Unterabfragen mit der Klausel „WHERE IN“ in Laravel
In Laravel ist das Erstellen einer Unterabfrage innerhalb der Klausel „WHERE IN“ effizient Möglichkeit, Ergebnisse basierend auf Daten aus einer zugehörigen Tabelle zu filtern. Sehen wir uns ein bestimmtes Szenario an:
Sie haben die Aufgabe, Produkte anhand ihrer Kategorien abzurufen. Die Abfrage sollte Spalten wie ID, Name und Status enthalten und die Produkte sollten zu bestimmten Kategorien mit den IDs „223“ oder „15“ gehören.
Ursprüngliche Abfrage:
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
Laravel-äquivalente Verwendung Abschluss:
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:
Die Funktion „whereIn“ akzeptiert einen Abschluss als Argument, sodass Sie die darin enthaltene Unterabfrage definieren können.
Vorteile der Verwendung Abschluss:
Das obige ist der detaillierte Inhalt vonWie kann ich Unterabfragen mit „WHERE IN' in Laravel effizient zum Filtern von Daten verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!