我正在使用sinatra和heroku托管的postgres数据库。我有一个在Sequel中运行的查询,它是:
@shortmembers = DB[:shortlists].distinct(:shortname).join(:shortmembers, :short_id => :listid)
你会如何在Active Record中做到这一点?
在SQL中它将是:
SELECT DISTINCT(shortname), listid FROM shortlists INNER JOIN shortmembers ON shortlists.listid = shortmembers.short_id
最后一个问题,您可以使用Active Record进行原始SQL查询吗?如果是这样,怎么样?
非常感谢!
答案 0 :(得分:0)
使用Active Record Query Interface中记录的ActiveRecord的select
和joins
,您可以执行之类的操作:
Shortlists.select(:shortname).uniq.joins(:shortmembers, :short_id => :list_id)
是的,您当然可以使用Active Record进行原始SQL查询,但是您会发现Active Record为大多数查询用例提供了一种方法,并且这些方法比原始SQL更好。