在我的应用程序的结果,我有两个表:一个用于跟踪记录,而另一种,我在某些网页上跟踪单个浏览量。每个页面视图事件触发一条记录写入我的Views表。插入/更新到表与另一个查询
为了计算统计数据,我有哪里我试图汇总这些意见,由RECORD_ID分组计数,并将它们保存到一个单独的表中的cron作业。
如果我运行下面的INSERT查询,它的伟大工程。
insert into Details (record_id, views)
(select record_id, count(id) from Views where 1 group by record_id)
不幸的是,这只适用于插入,并且我很难找出插入/更新的正确查询。我试过使用On Duplicate Key Update
,但我似乎无法弄清楚如何让它与我现有的查询一起工作。我希望避免使用替代方法,如果可能的话,在PHP中编写脚本并运行一些单独的查询。
这里是我的表定义:
Views
id (int) PK
record_id (int)
created_at (date)
Details
record_id (int) PK
views (int)
注:此外,在未来,我打算增加更多的列的详细信息表来代表其他的统计数据,所以运行截断并重新 - 运行上面的原始插入查询并不是一个真正可行的解决方案。
如何从摘要中删除record_id作为步骤1 - 然后重新运行插入? – Randy
这是可能的,但是计划是在细节表中添加更多的列来表示其他汇总统计数据...这就是为什么我要插入数据,如果可能的话 – nageeb