0
두 가지 하위 쿼리를 사용하지 않고이 간단한 작업을 수행 할 수있는 방법이 있습니까?MySQL GROUP BY 필드가 일치하지 않음
이 내 기본 데이터입니다 :
SELECT order_detail_id, product_id, MAX(paid_price) AS max_price, order_id
FROM t_order_details
WHERE order_id = 7 OR order_id = 8
GROUP BY order_id
내가 order_detail_id 선택하고 데이터가하지 않는 것 같다 위해 8의 순서 7과 같은 일에, 최대 가격 PRODUCT_ID합니다 일치하는 행
SELECT order_detail_id, product_id, MAX(paid_price) AS max_price, order_id
FROM t_order_details
WHERE order_id = 7 OR order_id = 8
GROUP BY order_id
이것은 두 개의 하위 쿼리가 포함 된 솔루션입니다.
SELECT order_detail_id, product_id, paid_price, order_id
FROM t_order_details
WHERE paid_price IN (
SELECT MAX(paid_price) AS max_price
FROM t_order_details
WHERE order_id = 7 OR order_id = 8
GROUP BY order_id)
AND order_id IN (
SELECT order_id
FROM t_order_details
WHERE order_id = 7 OR order_id = 8
GROUP BY order_id)
GROUP BY order_id
하지만
작품! 이것은 내 것보다 낫다. 하지만 하위 쿼리없이 수행 할 수 있기를 바랍니다. 매우 일반적인 문제이기 때문에 –
@AndreyKudriavtsev ** 편집 된 ** 부분 검사가 작동하는지 여부를 확인하십시오. – Blank