从多个表中检索数据的最佳方法

时间:2016-04-19 13:27:02

标签: php mysql

我设计了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对我不起作用。我如何以正确的方式解决这个问题?

0 个答案:

没有答案