테이블 A에서 1 행, 테이블 B에서 여러 행을 반환하는 MySQL 왼쪽 결합 쿼리가 있습니다.이 행에 WHERE 절이 여러 개 있어야하며 모든 B 행 시합.MySQL 여러 개의 왼쪽 결합 행을 사용하는 경우
나는이 :
SELECT
mage_sales_order.entity_id
FROM mage_sales_order
LEFT JOIN mage_sales_order_item
ON mage_sales_order.entity_id = mage_sales_order_item.order_id
WHERE
mage_sales_order_item.sku NOT LIKE '1-%'
AND mage_sales_order_item.sku LIKE '2-%'
## Group order IDs together
GROUP BY entity_id
그러나 이것은 SKU는이 "1"로 시작하는 항목이있는 경우에도 "2"로 시작하는 항목이있는 순서를 반환합니다. "2"로 시작하는 항목 만 가진 주문이 반환되도록하고 싶습니다. 예를 들어
:
반환해야합니다
- 주문 1 (mage_sales_order)
- 2 sampleA-SKU (mage_sales_order_item)
- 2 sampleB-SKU (mage_sales_order_item)
는 반환하지 않나요 :
- 주문 1 (mage_sales_order)
- 1 샘플 SKU (mage_sales_order_item)
- 2 sampleA-SKU (mage_sales_order_item)
- 2 sampleB- SKU (mage_sales_order_item) 등
내가 이 질문은 이미 제기되었지만 검색을 시도하는 것은 어렵다는 것을 증명합니다.
왜'AND' 전에'mage_sales_order_item.sku이 '1 %'를 좋아하지'? –
@ KaushikNP이 질문에 대한 SQL을 단순화하고 제거하는 것을 잊었 기 때문에 (지금 편집)! –