在我的應用程序的結果,我有兩個表:一個用於跟蹤記錄,而另一種,我在某些網頁上跟蹤單個瀏覽量。每個頁面視圖事件觸發一條記錄寫入我的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