我在创建查询时遇到了困难。我google了很多但没找到合适的解决方案。 我有一个名为'blog'(父级)的表和一个名为'entry'(child)的表:
博客
输入
博客有多个条目。只有已发布的条目对其他用户可见。
我想创建一个查询,它可以获取10个最新修改过的博客。为此,我可能需要SQL中的'foreach'等价来搜索所有博客,并通过最新的PUBLISHED条目(entry.date_modified)订购它们,但只有IF entry.published = 1
我的SQL知识不在允许我创建此类查询的级别上。 附加信息:使用PHP(codeigniter)与MySQL
我试过这个,知道它永远不会奏效,但它可以帮助你作为我想要完成的事情的参考
SELECT blog.id
FROM blog
JOIN entry ON entry.blog_id = blog.id
WHERE entry.published = 1
ORDER by entry.date_created desc
LIMIT 0, 10
我希望我的最终结果是10个blog.id,其中他们的子条目发布最多。有人可以帮忙吗?非常感谢所有帮助。
如果在1个查询中无法实现这一点,也许使用PHP我可以使foreach语句执行单个查询吗?
答案 0 :(得分:1)
我相信这会奏效:
SELECT blog_id
FROM entry
WHERE published = 1
GROUP BY blog_id
ORDER BY MAX(date_created) DESC
LIMIT 0, 10
答案 1 :(得分:-1)
这可能就是你所需要的。
SELECT blog_id
FROM entry
WHERE published = 1
Group By blog_id
ORDER by date_created desc
LIMIT 0, 10