2014-09-11 4 views
2

내 데이터베이스에서 옷을 포함하고있는 다음 쿼리를 실행하면 result이 표시됩니다. 여기서 유일한 차이점은 크기 열만있는 동일한 제품의 여러 행입니다.다른 열이 동일한 경우 Group_concat, 다른 열이 동일하면 행에 조인

SQL 쿼리 :

SELECT 
categories.name AS "category", 
color_variant.pcode AS "code", 
stock.size AS "size", 
color_variant.price AS "price" 

FROM 
categories, product, color_variant, stock 

WHERE 
categories.id = product.category_id AND 
product.id = color_variant.product_id AND 
color_variant.id = stock.color_variant_id 

ORDER BY 
categories.id 

나는 내가

GROUP_CONCAT(DISTINCT stock.size ORDER BY stock.size SEPARATOR ', ') AS "sizes",

stock.size AS "size",를 대체하여 내가 GROUP_CONCAT 시도

category code    sizes    price 
    jean 1018918053 24,25,26,27,28,29,30,31,32 119.99 
    jean 1018916407 26       159.99 
    jean 1018917373 31       159.99 
    jean 1018917354 25       109.99 
    jean 1018919115 24,25,26,27,28,29,30,31,32 129.99 
    jean 1018913449 24,25,26,27     109.99 

뭔가를 얻을 각 제품의 크기 행에 가입하고 싶습니다

하지만 이렇게하면 내가 서브 쿼리로 사용하는 경우에도 모든 크기의 행, 가입 한 한 줄의 결과, 내가 잘못을하고있는 중이 야 무엇인지에

category code     sizes      price 
jean 1018918053 1,105,11-12,115,2-3,23,24,25,26,27,28,2... 119.99 

어떤 아이디어? 또는 어떻게이 문제를 해결할 수 있습니까?

+0

가 지정한 않았다 '그룹 전에

GROUP BY categories.name, color_variant.pcode, color_variant.price 

을 추가 하시겠습니까? 그렇게하지 않으면 집계 함수를 사용하면 mysql이 원하는대로 그룹화 할 수있다. –

+0

'ORDER BY' 바로 전에 GROUP BY categories.name, color_variant.pcode, color_variant.price를 추가하십시오. – Linger

+0

@Linger 덕분에이 문제가 해결되었습니다. – user3510209

답변

1

은 절 by` 당신의 ORDER BY

관련 문제