我正在尝试获取针对特定个人资料的评论,但只要有多个与该个人资料具有不同关系(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
谢谢!
答案 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
希望会有所帮助。