【发布时间】:2011-04-12 18:55:11
【问题描述】:
首先,这个问题是关于 PHP 和 MySQL 的
我有两个数据库表:
People 表:
person_id | field_1 | field_2 | other_fields...
还有Notes 表:
note_id | person_id | created_timestamp | other_fields...
People 表与Notes 表具有一对多关系...
每次在Notes 表中创建注释时,都会附加一个时间戳,同时分配一个person_id 外键。
现在...
我需要找到在过去 30 天内没有针对他们的 note 的所有 people。
我现在的做法是:
- 从
Notes表中获取所有注释,带有不同的person_id和created_timestamp>'time(31*86400)'(不精确.. 我知道,但适合我的需要) - 遍历结果并将
person_id添加到临时数组$temp - 从
People表中获取所有记录 - 遍历每条记录并对
in_array()与person_id和$temp进行比较
当有很多 People 或 Notes 时,这不是很有效并且会削弱应用程序。
有没有人对此有更好的解决方案。理想情况下,只需使用一个 SQL 查询即可实现。
感谢观看
【问题讨论】:
标签: php mysql performance