gpt4 book ai didi

php - 选择评论最多的帖子以及子帖子和父帖子

转载 作者:行者123 更新时间:2023-11-30 23:07:23 25 4
gpt4 key购买 nike

我设置了两个 MySQLi 表。一个叫做“AIW_comments”。它有一个标题为“post_id”的列,让我知道这条评论指的是什么帖子。

我还有一个名为“AIW_posts”的表,其中包含所有帖子。

现在我需要一个 mysqli select 语句来首先检索评论最多的帖子。我使用以下方法使代码按预期完美运行:

$results = mysqli_query($con,"SELECT AIW_posts.*
FROM AIW_comments, AIW_posts
WHERE (AIW_posts.id = AIW_comments.post_id AND childPost_id = 0)
GROUP BY AIW_comments.post_id
ORDER BY COUNT(*) DESC
, AIW_comments.post_id DESC

LIMIT $startIndex,$amount") or die(mysqli_error($con));
}

我添加了编辑帖子的功能。我给了“AIW_posts”两个新列“parentPost_id”和“childPost_id”。我创建了一个 PHP 函数,在给定任何帖子的 id 的情况下,它为我提供了每个子帖子和父帖子的 id 数组。

我如何像以前一样选择评论最多的帖子,但这次包括所有父项和子项评论,就好像它们是同一个帖子一样?

最佳答案

这是将返回您要查找的数据的 SQL 查询:

SELECT P.post_id
FROM AIW_posts P
INNER JOIN AIW_comments C ON C.post_id = P.post_id
INNER JOIN AIW_posts PP ON PP.post_id = P.parentPost_id
INNER JOIN AIW_posts PC ON PC.post_id = P.childPost_id
GROUP BY P.post_id
ORDER BY COUNT(C.post_id) DESC, P.post_id DESC
LIMIT 1 -- Or whatever limit you want

我选择只为您提供 SQL 查询而不是 PHP 实现,以便专注于您的问题并简化我的回答的可读性。

关于我的查询的一些信息:

  • 不使用老式语法来连接(...FROM table1,table2 WHERE...), 我使用了 INNER JOIN子句
  • 我用了另外两个获取父子职位的关节
  • 为了便于阅读,我的查询只返回 post_id。要获得所需的所有列,您只需将它们添加到 SELECT 子句中并且不要忘记在 GROUP BY 子句中添加这些列!

希望对您有所帮助。

关于php - 选择评论最多的帖子以及子帖子和父帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21267746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com