Interseção de consulta com o activerecord

Eu realmente gostaria de fazer a seguinte consulta com a ajuda do registro ativo

(select *
from people p join cities c join services s
where p.city_id = c.id and p.id = s.person_id and s.type = 1)

intersect

(select *
from people p join cities c join services s
where p.city_id = c.id and p.id = s.person_id and s.type = 2)

O problema é, em primeiro lugar, o mysql não suporta interseção. No entanto, isso pode ser trabalhado ao redor de. O problema é que posso obter um registro ativo para produzir algo que seja próximo disso.

No registro ativo, o melhor que pude fazer foi emitir várias consultas e usarreduce :& para se juntar a eles, mas depois eu recebo uma Matriz, não uma Relação. Isso é um problema para mim porque eu quero chamar coisas como limite, etc. Além disso, eu acho que seria melhor para a interseção ser feita pelo banco de dados, ao invés do código ruby.

questionAnswers(3)

yourAnswerToTheQuestion