我正在创建一个文章聚合器。这些文章可以由登录的用户进行投票。 这个问题的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的新闻上方,其中upvote计数为0.但是,即使它的upvote计数仅为1,18也会从以后的日期排在16以上。
请注意,nid 17的新闻时间晚于16,但仍低于16,因为它们属于同一天,同一天的排序基于upvote计数。
最终结果应该是今天的帖子按照upvotes的总数排序,然后是昨天按大多数upvotes分类的帖子,等等。