Laravel Subquery Where In
쿼리:
다음 쿼리를 실행해야 합니다. 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
해결책:
하위 쿼리를 사용하여 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 메소드 열의 값이 제공된 배열의 모든 값과 일치해야 함을 지정할 수 있습니다. 이 경우, product_category 테이블의 product_id 열에 id 열이 있는 모든 제품을 선택하려고 합니다. 여기서 Category_id 열은 '223' 또는 '15'이고 활성 열은 1입니다.
제공된 코드는 클로저를 사용하여 하위 쿼리를 정의합니다. 클로저 내에서 product_category 테이블에서 product_id 열을 검색하는 쿼리를 정의합니다. 그런 다음 쿼리는 지정된 조건에 따라 결과를 필터링하고 최종적으로 원하는 product_id 값을 반환합니다.
위 내용은 Laravel에서 WHERE IN 절을 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!