JOIN显示重复的结果? :/

时间:2010-12-16 18:35:44

标签: php sql mysql

我有一些加入,我正在检索与一段内容相关联的“标签”。 我的标签包很好,但是每个都重复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                

关于为什么会发生这种情况的任何提示或建议,如果错误,我将如何以正确的方式进行?

谢谢!

1 个答案:

答案 0 :(得分:0)

其中一个INNER JOIN不是检索一个独特的记录而是几个。尝试评论INNER JOIN并逐个取消注释,看看它是哪一个。

更新:抱歉,妄下结论。伊格纳西奥是对的,应该有一个GROUP BY。