This project is archived and is in readonly mode.

#906 ✓resolved

Better query for ASSOCIATION_ids

Reported by Bertg | August 26th, 2008 @ 10:58 AM

For has_many relations Imagine we have 2 models: Cart and Item. Cart has many Items.

If we execute the following statement


we get the following query

SELECT * FROM `items` WHERE (`items`.cart_id = 1)

This could by retrieving only an array, and not the objects.

SELECT `items`.id FROM `items` WHERE (`items`.cart_id = 1)

For has_many :through relations Imagine 3 models: User, Membership, Account

The User has many accounts trough membership and vice versa. We define the fitted relations and Execute the following query


This will create the following query

SELECT `accounts`.* FROM `accounts` INNER JOIN memberships ON = memberships.account_id WHERE ((`memberships`.user_id = 1))

While the following query would be a lot more efficient (only retrieving an array, not the objects):

SELECT `memberships`.account_id FROM memberships WHERE ((`memberships`.user_id = 1))

What do you think?

Comments and changes to this ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile »

<h2 style="font-size: 14px">Tickets have moved to Github</h2>

The new ticket tracker is available at <a href=""></a>

Referenced by