나는 내가 얻고 있어야한다고 생각하는 것에서 중복 된 값을 얻는 데 문제가 있습니다.그룹에서 이중 값 가져 오기
이SELECT DISTINCT p.products_image,
pd.products_name,
p.products_id,
p.products_model,
p.manufacturers_id,
m.manufacturers_name,
p.products_price,
p.products_sort_order,
p.products_tax_class_id,
pd.products_viewed,
group_concat(p2i.icons_id separator ",") AS icon_ids,
group_concat(pi.icon_class separator ",") AS icon_class,
IF(s.status, s.specials_new_products_price, NULL) AS specials_new_products_price,
IF(s.status, s.specials_new_products_price, p.products_price) AS final_price
FROM products p
LEFT JOIN specials s ON p.products_id = s.products_id
LEFT JOIN manufacturers m ON p.manufacturers_id = m.manufacturers_id
JOIN products_description pd ON p.products_id = pd.products_id
JOIN products_to_categories p2c ON p.products_id = p2c.products_id
INNER JOIN products_specifications ps7 ON p.products_id = ps7.products_id
LEFT JOIN products_to_icon p2i ON p.products_id = p2i.products_id
LEFT JOIN products_icons pi ON p2i.icons_id = pi.icons_id
WHERE p.products_status = '1'
AND pd.language_id = '1'
AND ps7.specification IN ('Polycotton' ,
'Reflective')
AND ps7.specifications_id = '7'
AND ps7.language_id = '1'
AND p2c.categories_id = '21'
GROUP BY p.products_id
ORDER BY p.products_sort_order
두 배 값을 받고 열은 그룹 concact에서 icon_ids입니다 :
여기 내 SQL입니다. 이 솔기는 ploycotton 및 반사음이 둘 다 ps7.specification 인 경우에만 발생합니다.
둘 중 하나 일 뿐이라면 제대로 작동합니다.
products_to_icon 테이블에는 products_id 및 icons_id의 두 열이 있습니다.
제품에 아이콘이 2 개있는 경우 2 개의 행이 있으므로 중복 아이콘 ID가 발생한다는 사실을 알고 있습니다. 나는이 프로그램을 실행할 때
, 2 개 아이콘이있는 제품에 대한 icon_ids 열은 "4,4,6,6"예를 들어, 내가 필요한 때 "(4, 6)은"