我设计了2个像这样的mysql表。
Pages:
+-------------------------------------+
|id page_title url created_at|
+-------------------------------------+
| 1 homepage m.co 2016-04-18 |
| 2 user m.co/user 2016-04-16 |
+-------------------------------------+
Page Stats:
+-----------------------------------------------+
|id page_id likes comments created_at |
+-----------------------------------------------+
| 1 1 10 4 2016-04-18 15:01:54 |
| 2 2 13 13 2016-04-18 15:01:54 |
| 3 1 15 9 2016-04-19 15:01:54 |
+-----------------------------------------------+
“页面统计信息”表中的 page_id
是“页面”表中id
的外键。
有大约1000页的页面&每天在每天结束时获得的每个网址的统计数据。
我正在尝试检索Pages&他们的某些日期的统计数据按评论排序(或者有时是page_title或评论)&在html表上显示它。
我一直在这样做
SELECT * FROM Pages,Pagestats
WHERE Pages.id=Pagestats.page_id
AND DATE(Pages.created_at) >= '2016-03-20'
AND DATE(Pages.created_at) <= '2016-04-19'
AND DATE(Pagestats.created_at) >= '2016-04-12'
AND DATE(Pagestats.created_at) <= '2016-04-16'
ORDER BY comments desc
LIMIT 700
这很好但我在php端做了一些格式化,以便像这样在html表中显示它们。
id title 2016-04-12 2016-04-13 2016-04-14 2016-04-15 2016-04-15
1 home likes,comms likes,comms likes,comms likes,comms ...
我不知何故觉得我没有以正确的方式做到这一点。例如,LIMIT
部分,我只需要前10个条目,其中包含最近15天的统计信息。在这种情况下,LIMIT 10
对我不起作用。我如何以正确的方式解决这个问题?