다음과 같은 mysql 쿼리가 있으며 카테고리별로 항목 목록이 생성됩니다. 그러나 생성 된 항목 중 일부는 중복 된 항목입니다 (두 개 이상의 범주에 표시되기 때문에 entry_id가 중복됩니다). 중복이 없도록하려면 어떻게해야합니까? 나는 GROUP BY
과 DISTINCT
의 다른 변형을 시도했지만 성공하지 못했습니다. 고맙습니다.Mysql은 두 개의 왼쪽 조인을 사용하여 고유 항목을 가져옵니다.
SELECT ct.entry_id, ct.title, c.cat_name
FROM exp2_categories c
LEFT JOIN exp2_category_posts cp ON (cp.cat_id = c.cat_id)
LEFT JOIN exp2_channel_titles ct ON (ct.entry_id = cp.entry_id)
WHERE c.group_id = '4'
GROUP BY c.cat_id
ORDER BY ct.entry_date DESC
편집 :이 범주에 여러 항목을 생성 제외
첫 번째 대답은, 중대하다. 카테고리 당 하나의 고유 항목이 필요합니다. 미안하지만, 원래의 질문에 더 구체적이어야 했어.
entry_id_1 Title 1 Category_1, Category_2
entry_id_3 Title 3 Category_2
entry_id_345 Title 345 Category_3
entry_id_123 Title 123 Category_4, Category_3, Category_1
entry_id_678 Title 678 Category_4
원하는 결과 - 항목은 고유 및 카테고리 당 하나의 항목이 :
항목은 고유하지만, 너무 많은 항목이 - 그것은 생산하는 것을 예를 들어,
entry_id_1 Title 1 Category_1
entry_id_3 Title 3 Category_2
entry_id_345 Title 345 Category_3
entry_id_123 Title 123 Category_4
는 테이블의 예를 게시주세요 이 쿼리에서 얻은 결과의 예 –
ct.entry_id로 그룹을 사용하면 어떻게됩니까 ... –
ct.entry_id로 그룹을 사용할 때 고유 항목이 있지만 반복되는 범주가 있습니다. –