Laravel에서 'WHERE IN' 절을 사용한 하위 쿼리
Laravel에서는 'WHERE IN' 절 내에 하위 쿼리를 생성하는 것이 효율적입니다. 관련 테이블의 데이터를 기반으로 결과를 필터링하는 방법입니다. 특정 시나리오를 살펴보겠습니다.
당신은 카테고리에 따라 제품을 가져오는 임무를 맡고 있습니다. 쿼리에는 ID, 이름, 상태 등의 열이 포함되어야 하며, 제품은 ID가 '223' 또는 '15'인 특정 카테고리에 속해야 합니다.
원래 쿼리:
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과 동등한 기능 사용 클로저:
Products::whereIn('id', function($query){ $query->select('paper_type_id') ->from(with(new ProductCategory)->getTable()) ->whereIn('category_id', ['223', '15']) ->where('active', 1); }) ->get();
설명:
'whereIn' 함수는 클로저를 인수로 사용하여 내부 하위 쿼리를 정의할 수 있습니다.
클로저 사용의 이점:
위 내용은 Laravel에서 `WHERE IN`과 함께 하위 쿼리를 효율적으로 사용하여 데이터를 필터링할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!