diff --git a/activerecord/lib/active_record/relation/merger.rb b/activerecord/lib/active_record/relation/merger.rb
index <HASH>..<HASH> 100644
--- a/activerecord/lib/active_record/relation/merger.rb
+++ b/activerecord/lib/active_record/relation/merger.rb
@@ -102,7 +102,9 @@ module ActiveRecord
         rhs_wheres = values[:where] || []
         lhs_wheres = relation.where_values
 
-        relation.where_values = merged_wheres(lhs_wheres, rhs_wheres)
+        _, kept = partition_overwrites(lhs_wheres, rhs_wheres)
+
+        relation.where_values = kept + rhs_wheres
         relation.bind_values  = merged_binds
 
         if values[:reordering]
@@ -134,10 +136,6 @@ module ActiveRecord
         end
       end
 
-      def merged_wheres(lhs_wheres, rhs_wheres)
-        partition_overwrites(lhs_wheres, rhs_wheres).last + rhs_wheres
-      end
-
       # Remove equalities from the existing relation with a LHS which is
       # present in the relation being merged in.
       # returns [things_to_remove, things_to_keep]
push partitioning up so bind elimination can get the removed wheres