如何查询论坛名称、ID及对应最高帖子ID(无帖子时显示0)
获取论坛及其最高帖子ID的查询语句
这是你需要的SELECT查询语句,能精准满足需求——不管论坛有没有帖子,都能返回对应的最高帖子ID(无帖子时显示0):
SELECT f.ID AS forum_id, f.Name AS forum_name, COALESCE(MAX(p.id), 0) AS highest_post_id FROM forums f LEFT JOIN posts p ON f.ID = p.forum_id GROUP BY f.ID, f.Name;
代码细节说明:
- LEFT JOIN:保证所有论坛条目都会被保留,哪怕该论坛下没有任何帖子,避免遗漏无帖论坛。
- MAX(p.id):计算每个论坛下的最高帖子ID,若论坛无帖,这个函数会返回
NULL。 - COALESCE(..., 0):把
NULL值替换为0,完美实现“无帖子时显示0”的要求。 - GROUP BY f.ID, f.Name:按论坛的唯一ID和名称分组,确保每个论坛只返回一行汇总结果。
如果你的posts表中关联论坛的字段不是forum_id,记得把p.forum_id改成实际的字段名称哦!
内容的提问来源于stack exchange,提问作者GreenTriangle
相关产品推荐
相关产品推荐

