2013-06-06 2 views
1

나는 sinatra와 heroku가 호스팅하는 postgres 데이터베이스를 사용하고있다. Sequel에서 작동하는 쿼리가 있습니다.액티브 레코드로 고생하다.

@shortmembers = DB[:shortlists].distinct(:shortname).join(:shortmembers, :short_id => :listid) 

액티브 레코드에서 어떻게합니까? 그것은 SQL에서

이 될 것입니다 :

SELECT DISTINCT(shortname), listid FROM shortlists INNER JOIN shortmembers ON shortlists.listid = shortmembers.short_id 

마지막으로 질문, 당신은 액티브 레코드와 원시 SQL 쿼리를 할 수 있습니까? 그렇다면 어떻게?

감사합니다. Active Record Query Interface에 설명되어 액티브의 selectjoins이, 당신이 뭔가를 할 수있는 사용

답변

0

같은 :

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

그리고 그래, 당신은 확실히 액티브 레코드 원시 SQL 쿼리를 수행 할 수 있습니다,하지만 당신은거야 액티브 레코드가 대부분의 쿼리 유스 케이스에 대한 메소드를 제공하고 원시 SQL보다 선호되는 방법을 찾는다.

+0

의견을 보내 주셔서 감사합니다. 작동하지 않습니다. 오류 메시지는 관계 "shortmembers"는 존재하지 않지만 데이터베이스에서 적어도 존재한다는 것을 나타냅니다. – user1903663