2010-12-16 21 views
1

Ich habe einige Joins und ich habe "Tags" mit einem Stück Inhalt abgerufen. Ich bekomme meine Tags Tasche gut, aber sie sind wie 6-7 mal dupliziert.JOIN zeigt doppelte Ergebnisse? :/

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     

Irgendwelche Tipps oder Anregungen, warum dies geschieht und wenn es falsch ist, wie würde ich mich über das den richtigen Weg zu tun?

Danke!

+3

Wahrscheinlich vergessen zu gruppieren. –

Antwort

0

Einer der INNER JOINs ruft nicht einen eindeutigen Datensatz ab, sondern mehrere. Versuche, die INNEREN JOINS zu kommentieren und sie einzeln auszukommentieren, um zu sehen, welcher es ist.

Update: Sorry, voreilige Schlüsse ziehen. Ignacio hat Recht, es sollte eine GROUP BY geben.

+0

Ja, total die GROUP BY :) –

Verwandte Themen