diff --git a/ee/app/finders/merge_requests/by_approvers_finder.rb b/ee/app/finders/merge_requests/by_approvers_finder.rb
index 9814fce36bacef1f007141bbdb262d4d10606177..226dd58cc8b5737e2efdd241b7eaaadb1695cfab 100644
--- a/ee/app/finders/merge_requests/by_approvers_finder.rb
+++ b/ee/app/finders/merge_requests/by_approvers_finder.rb
@@ -73,7 +73,7 @@ def find_approvers_by_ids(items, user_ids)
         items_with_users
           .where(users_association => { user_id: user_ids })
           .group('merge_requests.id')
-          .having("COUNT(#{users_association}.user_id) = ?", user_ids.size)
+          .having("COUNT(#{users_association}.user_id) >= ?", user_ids.size)
       end
     end
 
diff --git a/ee/spec/finders/merge_requests/by_approvers_finder_spec.rb b/ee/spec/finders/merge_requests/by_approvers_finder_spec.rb
index 937b88c66ab5756c28707e0bff8101f60d612579..22d0b4fe667470b51b72552845ea800efbe03856 100644
--- a/ee/spec/finders/merge_requests/by_approvers_finder_spec.rb
+++ b/ee/spec/finders/merge_requests/by_approvers_finder_spec.rb
@@ -64,6 +64,21 @@ def merge_requests(ids: nil, names: [])
           merge_request_with_project_group_approver
         ])
     end
+
+    context "with two approval rules targeting the same user on the same MR" do
+      let(:double_approval_user) do
+        merge_request_with_approver.approval_rules.first.approvers.first
+      end
+
+      before do
+        2.times { create(:approval_merge_request_rule, merge_request: merge_request_with_approver, users: [double_approval_user]) }
+      end
+
+      it 'correctly returns merge request' do
+        expect(merge_requests(names: [double_approval_user.username])).to match_array(
+          [merge_request_with_approver, merge_request_with_two_approvers])
+      end
+    end
   end
 
   context 'filter by second approver' do