2017-03-24 1 views
1

합류하지만 결과는 내가 기대하지 않습니다 값 ..SQL 쿼리 내가 함께 쿼리를 넣어하려고

id  |name      |sku |category_ids   |modifier_group_ids | 
-------|----------------------------|----|------------------------|-------------------| 
336937 |Chicken Pullets    | |12981     |     | 
336938 |Hats      | |12965     |     | 
336939 |Jack Fruit Taco Salad  | |12975,12975,12975  |57,58,60   | 
336940 |Vegatarian Taco Salad  | |12975,12975,12975  |58,60,57   | 
336941 |Pulled Pork Taco Salad  | |12975,12975,12975  |58,57,60   | 
336942 |Ground Beef Taco Salad  | |12975,12975,12975  |60,57,58   | 
336943 |Steak Taco Salad   | |12975,12975,12975  |57,58,60   | 
336944 |Chicken Taco Salad   | |12975,12975,12975  |60,58,57   | 
336945 |Jack Fruit Quesadilla  | |12976,12976,12976,12976 |58,60,57,56  | 
+0

이 보인다 ... – jarlh

답변

1

조회에 잘 보이는 대부분 DUPS은 JOIN과 함께오고있다. 아래의 group_concat()에서 distinct을 사용해보세요.

group_concat(distinct pic.id) category_ids, 
+0

덕분에이있었습니다. –

0

당신은 단순히 함수 내에서 distinct 키워드를 사용, 중복 값이 ​​group_concat()에 의해 연결된하지 않으려면 : 당신이 어딘가에 DISTINCT 필요 같은

select pii.id, pii.name, pii.sku, group_concat(DISTINCT pic.id) category_ids, group_concat(pimg.id) as modifier_group_ids 
from items as pii 
left join category_item as pici on pii.id = pici.item_id 
left join categories as pic on pici.category_id = pic.id 
left join item_modifier_group as piimg on pii.id = piimg.item_id 
left join modifier_groups as pimg on piimg.modifier_group_id = pimg.id 
where pii.account_id = 728 
group by pii.id; 
+0

덕분에,이 문제가 해결되었습니다. 당신의 앞에 게시 되었기 때문에 다른 대답을 선택했습니다. –

관련 문제