Activerecord 返回按最新关联排序的不同记录的查询
我有一个简单的关系Activerecord 返回按最新关联排序的不同记录的查询,activerecord,associations,Activerecord,Associations,我有一个简单的关系 Playlist (id, title) which has_many Playlistships(playlist_id, post_id) playlishp是Playlist和Post类之间的关联。当用户向“播放列表”添加“帖子”时,将创建一个新的“播放列表”。当从“播放列表”中删除“帖子”时,相应的“播放列表”将被销毁 我想创建一个查询,该查询将按playliships的顺序返回“Playlists”。已在 基本上,我希望有一个视图,显示最近通过playlish
Playlist (id, title)
which has_many
Playlistships(playlist_id, post_id)
playlishp
是Playlist
和Post
类之间的关联。当用户向“播放列表”添加“帖子”时,将创建一个新的“播放列表”。当从“播放列表”中删除“帖子”时,相应的“播放列表”将被销毁
我想创建一个查询,该查询将按playliships的顺序返回“Playlists”。已在
基本上,我希望有一个视图,显示最近通过playlishp
类添加了帖子的播放列表。尝试以下操作:
select * from Playlists P
join Playlistships S on P.id = S.playlist_id
order by S.created_at
要获取每个播放列表(包含任何帖子)的最新播放列表,请执行以下操作:
我需要播放列表的明确结果。我的问题是,在我加入之前,我似乎无法让activerecord对在创建时创建的播放列表进行排序。@wuliwong-我使用子查询编辑了答案,以获取最新的播放列表。这对你有帮助吗?愚蠢的是,我忘了提到我正在RubyonRails中使用Activerecord。我将不得不争论你写了什么来在那里工作。我会告诉你事情的进展。我现在在做我真正的工作,所以今晚我得试试。谢谢你!对不起,我花了一段时间才回复你。第二个查询成功了!只需一个小编辑,我需要将播放列表
更改为播放列表
。谢谢,抱歉,我花了这么长时间才回复。
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