首先,我搜索了这个主题并找到了一些相同的话题主题,但我不明白如何将它应用到我的场景中:/
我有2个涉及此查询的表。
Table : Discussions Table : Comments
-------------------- -------------------------------------
|id | content | | id | d_id | content | timestamp |
-------------------- -------------------------------------
| 1 | Text String | | 1 | 2 | Comment 1 | timestamp |
| 2 | Text String | | 2 | 3 | Comment 2 | timestamp |
| 3 | Text String | | 3 | 4 | Comment 3 | timestamp |
| 4 | Text String | | 4 | 2 | Comment 4 | timestamp |
| 5 | Text String | | 5 | 3 | Comment 5 | timestamp |
-------------------- -------------------------------------
现在我需要从讨论表中获取id&需要根据Unix时间戳在注释表中使用 d_id 对其进行排序。
所以最近评论的讨论将首先在网站上列出。
希望你明白了。请告诉我如何为此编写SQL查询。
答案 0 :(得分:0)
如果我理解你的问题,那么你需要加入两个表
select Comments.d_id, Discussions.content as d_content, Comments.content as c_content
from Comments
right join Discussions
on Discussions.id = Comments.d_id
order by Discussions.id, Comments.timestamp
编辑:
if
答案 1 :(得分:0)
一个简单的连接将多次获取每个讨论(作为讨论的评论数量)。 此查询最多只返回一次讨论一次:
SELECT d_id FROM Comments GROUP BY d_id ORDER BY MIN(timestamp) DESC
当然,如果您想要更多数据,而不仅仅是Discussions.id
,那么您将需要进行一些连接。
另请注意,此查询不会返回没有任何注释的讨论ID。为此,你也必须加入。