我有一个mysql数据库。 我在这个数据库中创建了一个包含帖子的表。
该表格包含以下列:
p_id (primary key), post_header, creation_date, post_body, r_id, u_id
所以每条记录代表一个帖子。
r_id
引用p_id
,当它不为空时,表示它是对p_id
(或帖子ID)的回复。
我的问题是,我想要一个查询来抓取所有帖子,并将所有帖子的所有回复分组到下面。
示例结果集:
所以基本上我正在寻找一个可以通过创建日期desc命令我的全局帖子的查询,并且还按照创建日期desc按顺序嵌套下面的回复。
我尝试使用这样的功能组:
SELECT * FROM global_post group by r_id order by creation_date desc;
但它不起作用。是否有一种可以将记录组合在一起的机制?
我不希望每个帖子都有子查询
答案 0 :(得分:0)
您可以按照
部分的顺序尝试一下resultsTwo.size()
答案 1 :(得分:0)
GROUP BY
用于聚合数据,这不是您想要的。
尝试按coalesce(r_id, p_id)
排序,这将为全球帖子提供与其子女相同的顺序。然后添加第二个排序,将global_post放在top语句中。
select * from global_post
order by coalesce(r_id, p_id) desc,
case when r_id is null then 0 else 1 end, creation_date desc