我有两张相当大的桌子,我们称它们为“作者”和“文章”。“articles”表中的每一行都与“AuthorID”字段中的值表示的单个作者相关联。
我们有一个页面,其中显示了一组符合特定条件的作者,以及与每个作者关联的第一篇文章,按文章中“DatePublished”字段的值排序。
目前这是通过执行多个查询来实现的,结果证明这非常慢,尤其是在为大量作者执行时。我不是这方面的专家,但我很确定有一种方法可以通过单个语句获取这些数据,这将比当前的混乱情况优化得多。
换句话说:(将每个函数调用视为单个 SQL 查询)
我们现在拥有的:
$authors = get_some_authors($criteria);
for each($author in $authors) {
$author->lastArticle = get_latest_article_by_author($author_id);
}
我们需要的:
$authors_with_last_articles = get_some_authors_and_their_latest_articles($criteria);
我们使用的是 MS SQL Server 9.0。
希望我能正确解释问题。在此先感谢您的帮助。