2012-02-20 28 views
0

我有一个意见表[再次:)] ...递归MySQL查询得到父/子导致

COMMENT_ID comment_parent_id

E.G.如果有comment1(comment_id = 1)和comment2(comment_id = 2)都有comment_parent_id = 0,但是如果有人回复(增加评论)给comment_id = 1,这意味着这将是comment3(comment_id = 3,但comment_parent_id = 1)。

现在要获取并显示所有注释和子注释,我必须使用第二个查询来检查它是否有子注释,但我想用一个查询来代替递归函数来执行它,服务器是否有100-200的意见和他们有1-2次的意见..

如何才能做到这一点.. 感谢您的时间..

问候

回答

0

表结构

帖子

id 
post_id 
user_id 

评论

id 
post_id 
comment_id 
user_id 
deleted 

回复

id 
post_id 
reply_id 
user_id 
deleted 

SELECT * 
FROM posts p 
LEFT JOIN comments c ON c.post_id = p.post_id AND NOT c.deleted 
LEFT JOIN replies r ON r.post_id = p.post_id AND NOT r.deleted 
WHERE p.user_id = $user_id 
+0

感谢纳文,但是我的结构如下图所示: - 文章.. 的article_id - 评论.. COMMENT_ID comment_parent_id 的article_id 现在我取的意见表上的article_id发布的所有意见,但如果有是parent_id = 0的2条评论和parent_id = 1的1条评论,这意味着comment1有一个回复(sub-comment)作为子评论,我想列出所有评论,包括他们下面的子评论。 谢谢为你的时间.. 问候 – Max 2012-02-20 15:50:21