MySQL – 如何显示每个线程的最新主题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL – 如何显示每个线程的最新主题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1440字,纯文字阅读大概需要3分钟。
内容图文
![MySQL – 如何显示每个线程的最新主题](/upload/InfoBanner/zyjiaocheng/888/54c2fd8f964e4a52854bd7860906a54e.jpg)
我正在尝试创建SQL以检索论坛帖子的最新帖子列表.
我有以下代码:
SELECT
item_discuss_thread_id
, item_discuss_post_title
, COUNT(item_discuss_thread_id) AS nb_posts
FROM
item_discuss_posts
GROUP BY
item_discuss_thread_id
显然,如果帖子是最新的,这将是一个不分组的群体. item_discuss_post_title将获取组中的第一行.
我想知道这有什么办法吗?如果没有,解决问题的最佳方法是什么……只有子查询?
谢谢,
帕维尔
更新:
请注意我需要所有线程,LIMIT 1没有解决问题.
ORDER BY也不是一个选项,因为GROUP BY无论如何都会从组中选择第一条记录.
这似乎不是一个简单的问题.
更新:
我真的想避免使用子查询,或者如果这样做 – 使用最佳可能.
我目前带来的是这样的:
SELECT
ordered_by_date.item_discuss_thread_id
, item_discuss_post_title
, COUNT(item_discuss_thread_id) AS nb_posts
FROM
(
SELECT
item_discuss_thread_id
, item_discuss_post_title
FROM
item_discuss_posts
ORDER BY
item_discuss_post_datetime DESC
) AS ordered_by_date
GROUP BY
item_discuss_thread_id
EXPLAIN EXTENDED提供以下结果:
id, select_type, table, type, possible_keys, key, key_len, ref, rows, Extra
1, PRIMARY, <derived2>, ALL, \N, \N, \N, \N, 20, Using temporary; Using filesort
2, DERIVED, item_discuss_posts, index, \N, item_discuss_post_datetime, 8, \N, 20,
解决方法:
尝试这个.
SELECT
*
FROM
(SELECT item_discuss_thread_id, item_discuss_post_title, COUNT(item_discuss_thread_id) AS nb_posts
FROM item_discuss_posts
ORDER BY __datecolumn__)
AS ordered_by_date
GROUP BY
ordered_by_date.item_discuss_thread_id
将__datecolumn__替换为存储发布时间的列.
内容总结
以上是互联网集市为您收集整理的MySQL – 如何显示每个线程的最新主题全部内容,希望文章能够帮你解决MySQL – 如何显示每个线程的最新主题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。