나는 혼란스러운 SQL 문제를 가지고있다. 나에게 있어도 복합 키를 반환하는 파생 쿼리로 해결할 수는 없지만 다른 필드에서는 MIN() 집계 함수를 수행한다. 표. MIN()을 복합 키 중 하나에서 수행하면 쉬울 것입니다. 그러나 양쪽 키를 반환하고 MIN() 함수를 외부 쿼리에 수행해야하므로이 작업을 수행 할 수 없습니다 . 전체 쿼리는 다음과 같습니다SQL 복합 키 그룹화 문제
SELECT
p.name as productname
,tmp.packageid
,tmp.price
,ppk2.packageoptionid
,ppk2.selcomproductid
FROM (
SELECT ppk.productid, ppk.packageid, MIN(ppk.price) as price
FROM product_package ppk
INNER JOIN package pk ON ppk.packageid = pk.id
INNER JOIN [plan] pl ON pk.planid = pl.id
WHERE pk.networkid = 1
GROUP BY ppk.productid, ppk.packageid
) tmp
INNER JOIN product_package ppk2 ON (
ppk2.productid = tmp.productid
AND ppk2.packageid = tmp.packageid
)
INNER JOIN product p ON (p.id = ppk2.productid)
WHERE p.isenabled = 1;
현재 결과 :
--------------------------------------
productid | packageid | price
1 500 0
1 501 19.95
1 502 29.95
2 501 0
3 500 15
3 504 39.95
원하는 결과
--------------------------------------
productid | packageid | price
1 500 0
2 501 0
3 500 15
내가 독특한 필요에 따라 내 문제가 자리하고있는 곳 파생 된 쿼리는 "TMP"입니다 외부 테이블에 조인하기 전에 가장 낮은 가격으로 각 제품/패키지 조합에 대한 행을 반환하십시오.
도움이 될 것입니다.
좋은 질문입니다. 이제 : [pastebin 계정] (http://pastebin.com/)에 가입하여 stackoverflow가 코드 주위에 놓이는 추악한 슬라이더 막대를 볼 필요가 없습니까? ':)' – Droogans
@Droogans 또는 코드 형식을 지정할 수 있습니다. – ninesided
@nidesided : Touche, good sir. – Droogans