我正在尝试对用户发布的媒体发表评论和回复。 我的评论表结构如下:
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
?
答案 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;