1

我正在使用 Sinatra 和 Heroku 托管的 PostgreSQL 数据库。我有一个在 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 查询吗?如果是这样,怎么做?

4

1 回答 1

0

使用记录在Active Record Query Interface上的ActiveRecordselect和,您可以执行以下操作:joins

Shortlists.select(:shortname).uniq.joins(:shortmembers, :short_id => :list_id)

是的,您当然可以使用 Active Record 进行原始 SQL 查询,但是您会发现 Active Record 为大多数查询用例提供了一种方法,并且这些方法比原始 SQL 更可取。

于 2013-06-06T19:29:59.000 回答