排序'最近流行'表中的帖子,其中受欢迎程度由另一个表中的计数决定

时间:2017-07-26 06:03:26

标签: mysql sql database sorting

我正在创建一个文章聚合器。这些文章可以由登录的用户进行投票。 这个问题的2个相关表格是

新闻

private Context context;

context = Mockito.mock(Context.class);

upvotes

nid    ntitle                     nurl              ndatetime

 16    Apple                       abc.com/apple    2017-07-23 16:16:35   
 17     XYZ                        forbes.com/xyz   2017-07-23 17:16:35   
 18     ABC                        tc.com/abc       2017-07-24 18:16:35   

所需的输出

upvoteid   nid    userid
  1         16      23
  2         16      107
  3         18      2045

如何编写一个sql语句,用于对新闻表中最近流行的帖子进行排序。受欢迎我的意思是最受欢迎。

在upvote表中包含 nid 的每一行都被计为新闻文章的upvote。在上述情况下, nid 16的upvote计数为2。所以它被放置在id为17的新闻上方,其中up​​vote计数为0.但是,即使它的upvote计数仅为1,18也会从以后的日期排在16以上。

请注意,nid 17的新闻时间晚于16,但仍低于16,因为它们属于同一天,同一天的排序基于upvote计数。

最终结果应该是今天的帖子按照upvotes的总数排序,然后是昨天按大多数upvotes分类的帖子,等等。

1 个答案:

答案 0 :(得分:0)

如果您想按天订购帖子并在当天为该帖子投票,那么即使div{ width: 100 vw; } 表也需要有日期时间。

无论如何,这里给定的数据和预期结果是查询。

upvotes

示例运行 enter image description here