Mysql - 正确排序Facebook帖子,评论和回复

时间:2013-04-22 21:26:00

标签: mysql sql

似乎无法找到一个好的答案。我目前有两个表,一个有Facebook帖子,另一个有评论。我现在需要添加回复,因为FB最近这样做了。

我当前的查询从帖子中选择并加入评论。我希望为回复做的是在评论中添加另一个条目,但使用父ID。无论我最终得到什么查询,我希望结果看起来像这样:

postID commentID parentID
1
2      1
2      2         1
2      3         1
3      4

因此,帖子1没有评论,帖子2有一条评论,对该评论有两条回复,而帖子3只有一条评论。在我的注释表中,注释1-4是同一个表中的所有单独条目。无论如何使用一个查询来执行此操作而不必另一个连接到注释表吗?

编辑,当前查询。此查询不会处理回复,它仅适用于帖子和一个级别的评论。

select facebookFeeds.*, facebookComments.userID, facebookComments.name, facebookComments.message as cMessage, facebookComments.createdTime as cCreatedTime from facebookFeeds left join facebookComments on facebookFeeds.id = facebookComments.feedID where facebookComments.accountID= 24 order by createdTime desc

1 个答案:

答案 0 :(得分:0)

我弄清楚了,让它在订单条款中使用if工作。唯一的缺点是父评论ID必须低于其回复的数字。否则,回复将显示在父评论之前。在收到数据时,回复在评论之后,所以应该没问题。

select facebookFeeds.*, facebookComments.id as cID, parentID, facebookComments.userID, facebookComments.name, facebookComments.message as cMessage, facebookComments.createdTime as cCreatedTime from facebookFeeds left join facebookComments on facebookFeeds.id = facebookComments.feedID where facebookComments.accountID = 24 order by facebookFeeds.createdTime desc, if(parentID is null, cID, parentID)