2011-03-11 65 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