Mysql 按页面视图创建24小时顶级表格
如果我有以下表格,我将如何按页面浏览量创建“最近24小时顶部”表格Mysql 按页面视图创建24小时顶级表格,mysql,Mysql,如果我有以下表格,我将如何按页面浏览量创建“最近24小时顶部”表格 movie:id,title pageview:id、电影、查看日期 我需要像这样的第三张桌子 top:id、movie、moviecount24 所以我可以提出这样的疑问: 从top24 order by viewcount24 desc limit 30中选择* 我需要使用一个mysql查询创建top表。让我稍微重构一下Johan的响应: select pageview.id as pageview_id
movie:id,title
pageview:id、电影、查看日期
我需要像这样的第三张桌子
top:id、movie、moviecount24
所以我可以提出这样的疑问:
从top24 order by viewcount24 desc limit 30中选择*
我需要使用一个mysql查询创建
top
表。让我稍微重构一下Johan的响应:
select
pageview.id as pageview_id
,movie.title as move_title
,count(movie.id) as moviecount24
from pageview
inner join movie on (pageview.movie = movie.id)
where pageview.vieweddate between date_sub(now(), interval 1 day) and now()
order by moviecount24 desc
limit 30;
INSERT INTO top
SELECT movie.id AS id, COUNT(movie.id) as moviecount24
FROM pageview
LEFT JOIN movie ON pageview.movie = movie.id
WHERE vieweddate > NOW() - INTERVAL 1 DAY
LEFT JOIN
在这里很重要,因为有些电影可能没有观看次数,但结果中仍然应该有。我需要第三个表,名为top
Insert into top select pageview.id作为pageview\u id…,请参见下面yegor256的答案。零观看次数很难进入前30名。。。。,所以我不明白为什么要将这些结果缓存在表top
中。不过,如果你愿意的话,这也行。