2013-02-14 45 views
0

我的Rails應用程序我想呈現一組博客,其中最近的帖子是他們的子項。然而,這個問題本身並不是Rails特有的,看到普通的SQL答案會很好。 的數據結構爲: posts表,blogs表; blogsblogs.idposts通過外鍵posts.blog_id引用它們。 我所試圖做的事:MySQL:從一個表中取出唯一的行,同時按另一個的列進行排序

SELECT distinct blogs.id, blogs.* FROM `blogs` INNER JOIN `posts` ON `posts`.`blog_id` = `blogs`.`id` ORDER BY posts.created_at desc, posts.id desc LIMIT 5 

但我得到了錯誤的順序記錄。當我從查詢中刪除distinct blogs.id時,我得到了正確的排序,但是結果中有重複的帖子。 據我所知,我在這項任務中使用了錯誤的方法......但是正確的方法是什麼?

在此先感謝!

回答

0

試試這個

SELECT blogs.* 
FROM `blogs` 
INNER JOIN 
(
select distinct blog_id 
from posts 
ORDER BY posts.created_at desc, posts.id desc 
LIMIT 5 
) p ON p.`blog_id` = `blogs`.`id` 
+0

的感謝!似乎它的工作)) – meandre 2013-02-14 15:54:37

+0

...由於某種原因,我得到3個博客(有更多),而不是5,他們是無序的。 – meandre 2013-02-14 16:01:47

相關問題