aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-02-22 13:58:22 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-02-22 13:58:22 +0000
commite9426d22646eed19627784ca07adc902f6c5fe9e (patch)
treea6ef6d10f0f92596d54749750ce4333f9de24057 /activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
parentdfd43d577eaaf4b9c157f6379045d1e2fb68d1ee (diff)
downloadrails-e9426d22646eed19627784ca07adc902f6c5fe9e.tar.gz
rails-e9426d22646eed19627784ca07adc902f6c5fe9e.tar.bz2
rails-e9426d22646eed19627784ca07adc902f6c5fe9e.zip
Optimized the SQL used to generate has_and_belongs_to_many queries by listing the join table first #693 [yerejm]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@741 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb')
-rw-r--r--activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb b/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
index 77d2fb9cde..5ccac8e62b 100644
--- a/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
+++ b/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb
@@ -147,7 +147,7 @@ module ActiveRecord
def construct_sql
interpolate_sql_options!(@options, :finder_sql, :delete_sql)
@finder_sql = @options[:finder_sql] ||
- "SELECT t.*, j.* FROM #{@association_table_name} t, #{@join_table} j " +
+ "SELECT t.*, j.* FROM #{@join_table} j, #{@association_table_name} t " +
"WHERE t.#{@association_class.primary_key} = j.#{@association_foreign_key} AND " +
"j.#{@association_class_primary_key_name} = #{@owner.quoted_id} " +
(@options[:conditions] ? " AND " + interpolate_sql(@options[:conditions]) : "") + " " +