레일 3 애플리케이션을 생성 중입니다.가장 최근 게시물별로 그룹을 정렬하는 SQL 쿼리
그룹이 있습니다 (예 : 회원이있는 사회 집단 및 회원이 그룹에 게시 할 수 있음). 그래서 내 모델은 Group and Post이고, 그룹에는 has_many 개의 게시물이 있습니다 (각각의 (게시물)에는 분명히 group_id가 있습니다).
나는 게시물이없는 그룹을 포함하여 가장 최근 게시물별로 정렬 된 그룹 목록을 얻는 방법을 알아 내려고하고 있습니다.
감사합니다. 레일 3의 최종 해결을 찾고 될 사람을 위해
select g.group_id, g.group_name, max(p.post_date)
from group g left join post p on g.group_id = p.group_id
group by g.group_id, g.group_name
order by max(p.post_date) desc
고마워요, 나는 그 어떤 것도 성공하지 못한 채 1 시간 이상 동안 알아 내려고 노력했습니다. 그리고 당신의 답은 DESC가 없다는 것을 제외하고는 완벽합니다.) – v0rin
감사합니다. 나중에 이것을 읽는 사람들을 위해서 desc를 추가했습니다. –
레일 3의 최종 해상도를 찾고자하는 사람은 누구나 다음과 같이 보일 것입니다 : 'sorted_groups_ids = Group.joins ("LEFT JOIN posts p ON groups.id = p.group_id") select ("groups.id map (& : id) sorted_groups = Group.find (sorted_groups_ids) .sort_by {| g |)} 그룹 ("그룹 .id"). sorted_groups_ids.index (g.id)}' 다른 찾기가 이전 주문을 깨기 때문에 두 번째 줄이 필요합니다. – v0rin