因此,我有一个包含author_id外键和发布状态(布尔型)的帖子表。从表中选择所有行中具有相同外键的所有行的最高ID的所有
我想为作者(所有具有相同author_id外部标识的那些人)选择所有最近(最高ID)发布的帖子。眼下
我可以得到最高的一组外键
SELECT * FROM Posts WHERE id = (SELECT MAX(id) FROM Posts WHERE published = 1 AND author_id = 5);
,但是这只是返回给定外键的最高ID。我如何编写这个函数来返回其外键组中最高ID的所有帖子?
任何意见表示赞赏。谢谢
编辑:有它标记与SQL服务器和MySQL。这是MySQL。比较遗憾的是
编辑:有些要求清晰 这里是什么,我正在寻找一个样本: id body author_id published 1 Top 10... 1 1 2 Breaking... 1 1 3 New Report.. 3 1 4 Can Sunscreen... 3 1 5 Dow down... 2 1 6 Heart Warming... 2 1 7 Next time... 1 1 8 New study... 3 0
所以我想要做的就是抓住与IDS 4,6的职位和7因为4是作者3的最近(最高ID),6是作者2的最近期,7是作者1的最近期。我也有发布的条件,这就是为什么我们不抓住8,因为它是0。
4 Can Sunscreen... 3 1 6 Heart Warming... 2 1 7 Next time... 1 1
已经回答了: 通过添加一个IN而不是= Igor Quirino答案,我认为以下工作:
SELECT * FROM Posts WHERE id IN(SELECT MAX(id)FROM Posts WHERE published = 1 GROUP BY author_id) ;
谢谢你让我知道。请问 – Deciple