# Queries

**URL:** <https://www.ruby-forum.com/t/queries/91037>\
**Category:** Rails\
**Created:** [April 4, 2007, 12:11am UTC](https://www.ruby-forum.com/t/queries/91037 "2007-04-04T00:11:23Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![leonb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/22d042/32.png) [@leonb](https://www.ruby-forum.com/u/leonb)\
**Post date:** [April 4, 2007, 12:11am UTC](https://www.ruby-forum.com/t/queries/91037/1 "2007-04-04T00:11:23Z")

</div>

Hi,

I have this code:

for user in User.find(:all, :include =\> :declarations )

```
  for declaration in user.declarations
    pay += declaration.share($my)

    if declaration.my?
      paid = declaration.amount
    end
  end
end

```

end

But that generates all this queries: [Parked at Loopia](http://pastie.caboo.se/51507)

Is there a way to generate a lot less queries?

---

<div class="post-metadata">

**Author:** ![leonb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/22d042/32.png) [@leonb](https://www.ruby-forum.com/u/leonb)\
**Post date:** [April 4, 2007, 12:54am UTC](https://www.ruby-forum.com/t/queries/91037/2 "2007-04-04T00:54:41Z")

</div>

LeonB wrote:

> Hi,
> 
> I have this code:
> 
> for user in User.find(:all, :include =\> :declarations )
> 
> ```
> for declaration in user.declarations
> pay += declaration.share($my)
> 
> if declaration.my?
> paid = declaration.amount
> end
> end
> end
> 
> ```
> 
> end
> 
> But that generates all this queries: [http://pastie.caboo.se/51507](http://pastie.caboo.se/51507)
> 
> Is there a way to generate a lot less queries?

You log there doesn’t have the SQL for the loading of the users. You  
have the proper :include options but it doesn’t appear to be working.  
What SQL is generated from the Users query?

---

<div class="post-metadata">

**Author:** ![leonb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/22d042/32.png) [@leonb](https://www.ruby-forum.com/u/leonb)\
**Post date:** [April 4, 2007, 9:01pm UTC](https://www.ruby-forum.com/t/queries/91037/3 "2007-04-04T21:01:56Z")

</div>

Thanks for the reply. That’s this huge query:

SELECT users.“id” AS t0\_r0, users.“email” AS t0\_r1, users.“firstname”  
AS t0\_r2, users.“lastname” AS t0\_r3, users.“password” AS t0\_r4,  
users.“account\_number” AS t0\_r5, users.“created\_at” AS t0\_r6,  
users.“updated\_at” AS t0\_r7, declarations.“id” AS t1\_r0,  
declarations.“user\_id” AS t1\_r1, declarations.“amount” AS t1\_r2,  
declarations.“description” AS t1\_r3, declarations.“created\_at” AS  
t1\_r4, declarations.“updated\_at” AS t1\_r5 FROM users LEFT OUTER JOIN  
declarations\_payers ON (declarations\_payers.user\_id = users.id) LEFT  
OUTER JOIN declarations ON (declarations.id =  
declarations\_payers.declaration\_id)

On Apr 4, 12:54 am, Alex W. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
