Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从多个表检索数据的最佳方法_Php_Mysql - Fatal编程技术网

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

Php 从多个表检索数据的最佳方法,php,mysql,Php,Mysql,我设计了两个类似这样的mysql表 Pages: +-------------------------------------+ |id page_title url created_at| +-------------------------------------+ | 1 homepage m.co 2016-04-18 | | 2 user m.co/user 2016-04-16 | +------------------------

我设计了两个类似这样的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  |
+-----------------------------------------------+
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 ...        
“页面统计”表中的
page\u id
是“pages”表中
id
的外键。 每天在一天结束时获得的每个url都有大约1000个页面和统计信息

我正在尝试检索页面及其按注释排序的某些日期的统计信息(有时是页面标题或注释),并在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

我总觉得我做得不对。例如,
LIMIT
部分,我只需要统计过去15天的前10个条目。在这种情况下,
限制10
对我不起作用。如何以正确的方式解决这个问题?

为什么不选择join?在MySQL中说“过去7天”的更快方式是
DATEDIFF(NOW(),Pages.created_at)@Ms.Nehal这是一个join。@cdm,并不总是最后7天,可能会根据用户选择而改变(更新了问题)。我不明白你说什么。基本上,我需要的是按照最近一天的评论数量以及它们在指定日期范围内的统计数据(喜欢和评论)来抽取前10个页面。你为什么不喜欢join呢?MySQL中说“过去7天”的更快方式是
DATEDIFF(NOW(),pages.created_at)@Ms.Nehal这是一个join@cdm,它不是一直持续7天,可能会根据用户选择进行更改(已更新问题)。我不明白你说什么。基本上,我需要的是按照最近一天的评论数量和他们在指定日期范围内的统计数据(喜欢和评论)来拉前10页。