合并表值

时间:2016-05-26 12:05:38

标签: tsql

我有一张表:评论 列是:author_id,id,parent_id,timestamp

示例:

author_id, id, parent_id, timestamp
1, 1, NULL, 12:00 << this is the original post
2, 1234, 1, 12:04 << this is a reply made 4 minutes after
3, 5678, 1, 12:05 << this is another reply 

所有回复都将OP的'id'分享为'parent_id'

我想要的是单个表格或视图,订购以便所有对话(OP和回复)按上面的顺序排序。我现在所拥有的是按时间排序的所有评论(OP和回复)的列表,因此我有很多重叠的对话。我需要绑定对话,但不能作为连接,因为它会为每个回复重复每个OP,并使我需要的列加倍。

由于

1 个答案:

答案 0 :(得分:1)

假设会话由id和parent_id链接,并且新ID表示新会话的开始。 你可以这样写:

select
    ISNULL(parent_id, id) as ConversationId,
    *
from 
    Comments
order by ConversationId, timestamp