2011-03-11 34 views
0

我想用ActiveRecord方法建立一個SQL查詢。查詢有幾個連接需要派生表,就像這樣:「as」的Activerecord方法 - 派生別名

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

我的問題是,我似乎無法找到,讓我爲我的派生表創建別名的方法(在這裏:爲例) 。我的問題是,是否有可能使用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)") 

但我怎麼去添加「AS」別名?

回答

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

我正在使用別名的真正原因是因爲此派生表是其所加入的較大查詢的一部分。據我所知,沒有別名,它不起作用 – 2011-03-11 15:04:24