在单个MySQL查询中发布注释
我陷入了一个非常恼人的问题。我在我的网站上有一个简单的帖子和评论部分,就像一个博客I-e,两个表格帖子和评论: 帖子->idpost、标题、文本、日期 评论->idcomment,idpost\u cmt,电子邮件,消息,idcomment\u cmt 很简单。 idpost_cmt->posts表的外键 如果有人对已经存在的注释发送注释,则将使用注释表i-e中的最后一个字段idcomment\u cmt: 职位 |_评论1 |_评论2 |_评论3 |_评论4 __|_评论4.1 __|_评论4.2 |_评论5 . . . 等等 现在我想要的是在一个mysql查询中查询所有帖子和评论。我现在做的是,首先我得到所有的帖子,然后循环浏览每个帖子。在每个周期中,我使用当前帖子ID查询评论。然后循环浏览评论,在每个评论周期中,使用当前评论ID查询子评论 可以看到,通过这种方式,单个页面请求可能需要500个或更多sql查询,这对于数据库服务器来说太多了。 如果有人能帮助我实现这一目标,我将不胜感激在单个MySQL查询中发布注释,mysql,comments,posts,Mysql,Comments,Posts,我陷入了一个非常恼人的问题。我在我的网站上有一个简单的帖子和评论部分,就像一个博客I-e,两个表格帖子和评论: 帖子->idpost、标题、文本、日期 评论->idcomment,idpost\u cmt,电子邮件,消息,idcomment\u cmt 很简单。 idpost_cmt->posts表的外键 如果有人对已经存在的注释发送注释,则将使用注释表i-e中的最后一个字段idcomment\u cmt: 职位 |_评论1 |_评论2 |_评论3 |_评论4 __|_评论4.1 __|_评论4
非常感谢…您应该运行两个查询 获得所有职位 获取所有帖子的所有评论,包括子评论 您可以使用idpost_cmt将注释添加到组中 比如:
SELECT idpost,
title,
TEXT,
DATE
FROM posts
ORDER BY DATE DESC
LIMIT 30
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
第二个查询可能类似于:
SELECT idpost,
title,
TEXT,
DATE
FROM posts
ORDER BY DATE DESC
LIMIT 30
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
请阅读以下有关关系数据库中的分层数据的内容:。您正在使用邻接列表模型。非常感谢您。。。我要试试这个。你需要学会如何在这个论坛上接受答案。请参见投票下方答案左侧的复选标记。请这样做。