PHP减少sql查询的数量

时间:2018-05-29 14:32:24

标签: php sql

我有两张桌子:

CATEGORY

Id  Name  Thumbnail

ARTICLE

Id  Title  Content  CategoryId  CreatedOn

如何在不使用嵌套查询的情况下选择每个Article的最后Category个?

2 个答案:

答案 0 :(得分:0)

只需使用加入:

SELECT ARTICLE.ID, TITLE, CONTENT, CATEGORYID, MAX(CREATEDON)
  FROM ARTICLE
       INNER JOIN CATEGORY
               ON CATEGORY.ID = ARTICLE.CATEGORYID
GROUP BY ARTICLE.ID, TITLE, CONTENT, CATEGORYID

答案 1 :(得分:0)

您可以使用相关子查询:

select a.*
from article a
where a.createdon = (select max(a2.createdon)
                     from article a2
                     where a2.CategoryId = a.CategoryId
                    );

还有其他方法,但如果您在article(CategoryId, createdon)上有索引,则在大多数数据库中都有良好的性能。