我正在处理某种社交消息发布应用程序。在这一点上,我需要获取过去24小时内的数据趋势数据。我有3个表 - 信息,用户,共享根据最近24小时的股票获取行mysql
消息 - MESSAGE_ID,内容,USER_ID,created_at
用户 - USER_ID,电子邮件和其他数据
股 - MESSAGE_ID,USER_ID,created_at
现在,我正在寻找的是消息的详细信息,以及它的总共股数。我想根据过去24小时内的最高份额对这些消息进行排序,这给了我病毒式的消息。
我想,这可能是无效的尝试:
SELECT msg.`message_id`, msg.`user_id`, COUNT(share.user_id) share_count
msg.created_at, category FROM
(select * from message_shares ms where created_at>= DATE_SUB(CURDATE(), INTERVAL 24 HOUR)) trending,
`messages` msg
left join message_shares share ON share.message_id = msg.message_id
GROUP by msg.message_id order by msg.id desc
这是给我的无效SHARE_COUNT也实在是不给有效的结果和消息。并且它没有根据最近24小时的份额计数对消息进行排序。
我对MySQL查询没有太多先进的知识。所以请给我提供方法或查询来找到这些细节。
这不起作用。它为每一行返回相同的'share_count'。 –