查询以返回由最新关联排序的不同记录

时间:2014-11-10 02:04:02

标签: activerecord associations

我有一个简单的关系

Playlist (id, title)

which has_many

Playlistships(playlist_id, post_id)

PlaylistshipPlaylistPost类之间的关联。当用户添加'帖子'到播放列表'一个新的播放列表'被建造。当一个'发布'已从“播放列表”中移除相应的播放列表'播放列表。被毁了。

我想创建一个返回'播放列表'按playlistships.created_at

的顺序排列

基本上,我希望有一个显示playlists的视图,该视图最近通过posts类添加了Playlistship

1 个答案:

答案 0 :(得分:1)

尝试类似:

select * from Playlists P
  join Playlistships S on P.id = S.playlist_id
order by S.created_at

要获取每个播放列表的最新播放列表(有任何帖子):

select * from Playlists P
  join Playlistships S on P.id = S.playlist_id
where S.created_at = (select max(created_at) from Playlistships where playlist_id = P.id)
order by P.id