2011-03-11 3 views
0

ActiveRecord 메서드를 사용하여 SQL 쿼리를 작성하려고합니다. 쿼리는 몇과 같이 파생 테이블을 필요로하는 조인이 있습니다"as"- 파생 된 별칭에 대한 Activerecord 메서드

(SELECT voteable_id, COUNT(vote) FROM votes WHERE vote = 0 GROUP BY voteable_id) AS example 

내 문제는 내가 내 파생 테이블에 대한 별칭을 만들 수 있도록 해주는 방법을 찾을 수가 없어 할 수 있다는 것입니다 (여기를 예를 AS) . 내 질문에 따라서, 심지어 activerecord 메서드를 사용하여 이러한 쿼리를 작성할 수 있습니까?

수정 : 더 명확하게하기 위해. select 문을 작성하는 다음과 같은 메소드가 있습니다.

t = Vote # Vote being the table name 
t = t.where("vote = 0") 
t = t.group("voteable_id") 
t.select("voteable_id, COUNT(vote)") 

하지만 어떻게 "별명"별명을 추가할까요?

답변

0

당신은 항상 #to_sql의 결과를 사용할 수 있습니다 당신이 별칭을 사용해야하는 이유를 진짜 문제는 입니다

t = Vote # Vote being the table name 
t = t.where("vote = 0") 
t = t.group("voteable_id") 
sql = t.select("voteable_id, COUNT(vote)").to_sql 
t.connection.find_by_sql("(#{sql}) AS example") 

합니다. 그 점에 답해 주시면보다 나은 도움을받을 수 있습니다.

+0

별칭을 사용하는 진정한 이유는이 파생 테이블이 조인 된 더 큰 쿼리의 일부이기 때문입니다. 별칭 없이는 내가 아는 한 작동하지 않는다. –

관련 문제