0
나는Arel의 별칭이 지정된 테이블에서 select를 생성하려면 어떻게해야합니까?
SELECT *
FROM comments
INNER JOIN (...subquery...) s1
ON comments.user_id = s1.user_id
AND comments.created_at = s1.max_created_at
내가있는 comments
테이블 별칭을하는 방법을 알아낼 수 없습니다
SELECT c2.user_id, MAX(c2.created_at) as max_created_at
FROM comments AS c2
GROUP BY c2.user_id
더 큰 쿼리에서 서브 쿼리로 사용되는 양식 Arel를 사용하여 SQL을 생성 할 필요가 서브 쿼리.
앨리어싱로 연결하지 않고
쿼리를 생성 내가 얻을 수있는 가장 가까운
c2 = Comment.arel_table.alias
s1 = Comment.arel_table.project(
c2[:user_id], c2[:created_at].maximum.as('max_created_at')
).group('user_id').as('s1')
하지만, (C2가 정의되어 있지 않기 때문에 오류)이 잘못된 SQL을
SELECT c2.user_id, MAX(c2.created_at) as max_created_at
FROM comments
GROUP BY c2.user_id
를 생성 하위 쿼리 내부 및 외부 테이블 이름이 충돌 할 때 잘못된 결과가 나타납니다.
이것은 Arel::TableAlias
이 project
방법 인 오류를 제공합니다.
s1 = c2.project(...
Arel을 사용하여 별명이 지정된 테이블을 쿼리하려면 어떻게해야합니까?
당신은 어떤 테이블 (또는이 경우, 테이블 별칭에)에서 프로젝트에 알려from
을 사용할 수 있습니다