2010-12-16 3 views
1

일부 참여가 있으며 콘텐츠와 관련된 "태그"를 검색하고 있습니다. 나는 내 태그 가방을 멋지게 얻지 만, 그들은 각각 6-7 번처럼 중복된다.중복 결과가 나타나십니까? :/

SELECT                  

    users.userName,               
    usersProfiles.avatarUrl,             
    usersProfiles.gender,              

    GROUP_CONCAT(contentComments.message SEPARATOR ', ') AS comments,   

    c.*,                  

    GROUP_CONCAT(tagWords.tagWord SEPARATOR ', ') AS tags,      

    (SELECT COUNT(contentId) FROM platform.contentLikes WHERE contentId = 1213) as feedBackLikes                

FROM platform.contents c             

INNER JOIN platform.users ON users.userId = c.userId      
INNER JOIN platform.usersProfiles ON usersProfiles.userId = c.userId  
INNER JOIN platform.contentTags ON contentTags.contentId = c.contentId  
INNER JOIN platform.tagWords ON contentTags.tagId = tagWords.tagId   
INNER JOIN platform.contentComments ON contentComments.contentId = c.contentId                    

WHERE c.contentTitle = :contentTitle AND c.userId = :userId     

왜 이런 일이 발생했는지에 대한 조언이나 제안이 잘못된 경우 어떻게 올바른 방법으로 진행할 수 있습니까?

감사합니다.

+3

아마도 그룹화하는 것을 잊었을 것입니다. –

답변

0

INNER JOIN 중 하나가 고유 한 레코드가 아닌 여러 레코드를 검색하고 있습니다. INNER JOIN의 코멘트에 주석을 달고 하나씩 검토하여 주석을 제거하십시오.

업데이트 : 죄송합니다, 결론에 도달합니다. Ignacio가 맞습니다. GROUP BY가 있어야합니다.

+0

네, 전적으로 GROUP BY :) –