如何获得评论和回复?

时间:2012-12-27 08:32:01

标签: php mysql join

我正在尝试对用户发布的媒体发表评论和回复。 我的评论表结构如下:

commentId : parentCommentId : mediaId : userId : comment

我想选择最近的10条原始评论及其对mediaId的回复。

为此,我运行了2个sql语句。

SELECT commentId FROM comments
WHERE mediaId='3' AND parentCommentId='0'
LIMIT 10;

(这是最新的10篇帖子的评论ID。 然后我在下面使用这些commentIds ...

SELECT c.*,u.* FROM comments AS c
JOIN users AS u on u.userId=c.userId 
WHERE parentCommentId IN --( *****commentIds from previous query***** );

有更好的方法吗? Perphphs使用JOIN

2 个答案:

答案 0 :(得分:1)

如果你这样做会怎么样:

    SELECT c.*,u.* FROM comments c
    JOIN users u on u.userId=c.userId 
    JOIN comments p_c on p_c.commentId = c.parentCommentId
    WHERE p_c.mediaId='3' AND p_c.parentCommentId='0'
    LIMIT 10;

答案 1 :(得分:0)

这对您的问题很有用

    SELECT c.*,u.* FROM comments AS c
    INNER JOIN users AS u on u.userId=c.userId 
    INNER JOIN comments pc on pc.commentId = c.CommentId
    WHERE pc.mediaId='3' AND pc.parentCommentId='0'
    LIMIT 10;