1

我陷入了一个非常烦人的问题。我的网站上有简单的帖子和评论部分,就像博客一样,即两个表“帖子”和“评论”:

帖子 -> idpost、标题、文本、日期评论 -> idcomment、idpost_cmt、电子邮件、消息、idcomment_cmt

很简单。idpost_cmt -> 发布表的外键

如果有人对已经存在的评论发送评论,将使用评论表中的最后一个字段,即“idcomment_cmt”:

邮政

|_ 评论 1

|_ 评论 2

|_ 评论 3

|_ 评论 4

_ _ |_ 评论 4.1

_ _ |_ 评论 4.2

|_ 评论 5。. . 很快 ...

现在我真正想要的是在单个 mysql 查询中查询所有帖子和评论。我现在正在做的是首先获取所有帖子,然后循环浏览每个帖子。在每个周期中,我使用当前帖子 ID 查询评论。然后循环浏览评论,并在每个评论循环中,使用当前 CommentID 查询子评论。

如您所见,单个页面请求可能需要 500 或更多的 sql 查询,这对于数据库服务器来说太多了。如果有人可以帮助我如何做到这一点,我将非常感激。

非常感谢...

4

1 回答 1

0

You should run two queries.

  1. to get all Posts
  2. to get all comments for all posts including sub-comments

you can than put comments to the groups by using the idpost_cmt

something like:

SELECT idpost, 
       title, 
       TEXT, 
       DATE 
FROM   posts 
ORDER  BY DATE DESC 
LIMIT  30 

2nd query could be something like:

SELECT idcomment, 
       idpost_cmt, 
       email, 
       message, 
       idcomment_cmt 
FROM   comments 
       JOIN posts 
         ON posts.idpost = comments.idpost_cmt 
WHERE  posts.idpost IN ( 1, 2, 3, 4 ) 
ORDER  BY idpost_cmt, 
          idcomment_cmt, 
          idcomment DESC 
于 2011-03-16T08:04:45.063 回答