php 现在有两张表分别是文章表、评论表其中评论表使用aid关联了文章表的id我想获得评论最多的文章并生成列表
可以使用以下SQL语句来获得评论最多的文章:
SELECT a.id, a.title, COUNT(c.id) AS comment_count
FROM articles AS a
LEFT JOIN comments AS c ON a.id = c.aid
GROUP BY a.id
ORDER BY comment_count DESC
解释:
- 使用 LEFT JOIN 将文章表和评论表关联起来,关联条件是文章表的id等于评论表的aid。
- 使用 COUNT 函数统计每篇文章的评论数量,并将结果命名为 comment_count。
- 使用 GROUP BY 将结果按照文章id分组。
- 使用 ORDER BY 将结果按照评论数量降序排列。
生成列表可以使用PHP来实现,示例代码如下:
// 执行SQL语句,获取结果集
$result = $pdo->query($sql);
// 遍历结果集,输出列表
echo '<ul>';
foreach ($result as $row) {
echo '<li>';
echo '<a href="article.php?id=' . $row['id'] . '">' . $row['title'] . '</a>';
echo '(评论数:' . $row['comment_count'] . ')';
echo '</li>';
}
echo '</ul>';
说明:
- 使用 PDO 执行 SQL 语句,获取结果集。
- 遍历结果集,输出每篇文章的标题和评论数量,并将标题链接到文章详情页面。
- 列表使用无序列表(
- )来实现。
原文地址: https://www.cveoy.top/t/topic/bZr7 著作权归作者所有。请勿转载和采集!