# How to avoid SQL query?

**URL:** <https://www.ruby-forum.com/t/how-to-avoid-sql-query/93217>\
**Category:** Rails\
**Created:** [April 29, 2007, 2:52pm UTC](https://www.ruby-forum.com/t/how-to-avoid-sql-query/93217 "2007-04-29T14:52:55Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Daniel\_Para](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bcef8e/32.png) [@Daniel\_Para](https://www.ruby-forum.com/u/Daniel_Para)\
**Post date:** [April 29, 2007, 2:52pm UTC](https://www.ruby-forum.com/t/how-to-avoid-sql-query/93217/1 "2007-04-29T14:52:55Z")

</div>

This is only example.  
I’ve got two tables users and posts.

[1]  
select \* from users, posts where [posts conditions] and users.id =  
posts.user\_id order by posts.title desc

Post.find(:all, :conditions =\> […], :order =\> “title DESC”)

[2]  
select \* from users, posts where [posts conditions] and users.id =  
posts.user\_id order by users.name

Post.find … ???

How to avoid SQL query using Active Record find methods??

---

<div class="post-metadata">

**Author:** ![Daniel\_Para](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bcef8e/32.png) [@Daniel\_Para](https://www.ruby-forum.com/u/Daniel_Para)\
**Post date:** [April 30, 2007, 6:55pm UTC](https://www.ruby-forum.com/t/how-to-avoid-sql-query/93217/2 "2007-04-30T18:55:07Z")

</div>

Hi Daniel,

Your example is a bit vague to give a full answer… Maybe this will  
help:  
[http://www.therailsway.com/2007/3/26/association-proxies-are-your-friend](http://www.therailsway.com/2007/3/26/association-proxies-are-your-friend)

–Andrew V.

---

<div class="post-metadata">

**Author:** ![Daniel\_Para](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bcef8e/32.png) [@Daniel\_Para](https://www.ruby-forum.com/u/Daniel_Para)\
**Post date:** [April 30, 2007, 7:00pm UTC](https://www.ruby-forum.com/t/how-to-avoid-sql-query/93217/3 "2007-04-30T19:00:09Z")

</div>

hello,  
you can use find\_by\_sql :

Post.find\_by\_sql[“select \* from users, posts where posts.id =? and  
users.id = posts.user\_id order by users.name” , post\_id]

---

<div class="post-metadata">

**Author:** ![Daniel\_Para](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bcef8e/32.png) [@Daniel\_Para](https://www.ruby-forum.com/u/Daniel_Para)\
**Post date:** [April 30, 2007, 8:39pm UTC](https://www.ruby-forum.com/t/how-to-avoid-sql-query/93217/4 "2007-04-30T20:39:22Z")

</div>

Post.find(:all, :include =\> :user, :conditions =\> [“posts.id = ? AND  
users.id = ?”,postid,userid], :order =\> “users.name”)

class Post \< ActiveRecord::Base  
belongs\_to :user  
end

class User \< ActiveRecord::Base  
has\_many :posts  
end

Fredrik

On Apr 30, 11:58 am, Jean-Sébastien [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
