0

我在创建查询时遇到了困难。我用谷歌搜索了很多,但没有找到合适的解决方案。我有一个名为“博客”(父)的表和一个名为“条目”(子)的表:

博客

  • ID
  • 学科
  • 所有者

入口

  • ID
  • blog_id
  • 已发布(1 = 已发布,0 = 未发布)
  • date_created(时间戳,创建时间和发布时间)

一个博客有多个条目。只有已发布的条目对其他用户可见。

我想创建一个查询,它获取 10 个最新修改的博客。为此,我可能需要 SQL 中的“foreach”等效项来搜索所有博客,并按最新的 PUBLISHED 条目(entry.date_modified)对它们进行排序,但只有 IF entry.published = 1

我的 SQL 知识不在允许我创建这样一个查询的水平上。附加信息:在 MySQL 中使用 PHP (codeigniter)

我试过这个,知道它永远不会起作用,但它可以帮助你作为我想要完成的参考

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 语句来执行单个查询?

4

2 回答 2

1

我相信这会奏效:

SELECT blog_id
FROM entry
WHERE published = 1
GROUP BY blog_id
ORDER BY MAX(date_created) DESC
LIMIT 0, 10
于 2012-05-07T14:39:24.797 回答
-1

这可能就是您所需要的。

SELECT blog_id
FROM entry
WHERE published = 1
Group By blog_id
ORDER by date_created desc
LIMIT 0, 10
于 2012-05-07T14:32:11.000 回答