在查询中具有多个联接的重复值

时间:2016-01-07 08:45:17

标签: mysql join

我正在尝试获取针对特定个人资料的评论,但只要有多个与该个人资料具有不同关系(relation_id)的人发表评论,我就会重复,重复三次等等。

涉及的表格如下:

用户 - 用户身份 USER_FIRST_NAME user_last_name user_image路径

个人资料评论 - COMMENT_ID PROFILE_ID 用户身份 comment_body COMMENT_DATE

Profile_user_relation - 用户身份 PROFILE_ID relation_id

Relation_types - relation_id relation_name

我的查询如下:

    SELECT profile_comments.*, 
        relation_types.relation_name, 
        users.user_first_name, 
        users.user_image_path 
    FROM profile_comments 
    LEFT JOIN profile_user_relation ON profile_comments.profile_id = profile_user_relation.profile_id 
    LEFT JOIN relation_types ON relation_types.relation_id = profile_user_relation.relation_id 
    LEFT JOIN users ON profile_comments.user_id = users.user_id 
WHERE profile_comments.profile_id = :profileId

谢谢!

1 个答案:

答案 0 :(得分:2)

没有测试过,但我认为它应该可行,或者至少让你更近一点。

SELECT 
        C.*, 
        RT.relation_name, 
        U.user_first_name, 
        U.user_image_path 
FROM profile_comments      AS C 
JOIN users                 AS U  USING(user_id) 
JOIN profile_user_relation AS UR USING(user_id, profile_id) 
JOIN relation_types        AS RT USING(relation_id)


WHERE C.profile_id = :profileId

希望会有所帮助。