从另一个表数据中选择MySQL

时间:2017-03-01 15:49:37

标签: mysql sorting

首先,我搜索了这个主题并找到了一些相同的话题主题,但我不明白如何将它应用到我的场景中:/

我有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查询。

2 个答案:

答案 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。为此,你也必须加入。