Zapytanie o przecięcie z activerecord

Naprawdę chciałbym wykonać następujące zapytanie z pomocą aktywnego rekordu

(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)

Problem polega przede wszystkim na tym, że mysql nie obsługuje przecięcia. Jednak można to obejść. Chodzi o to, że mogę uzyskać aktywny rekord, aby wyprowadzić cokolwiek nawet blisko tego.

W aktywnym rekordzie najlepsze, co mogłem zrobić, to wydać wiele zapytań, a następnie użyćreduce :& dołączyć do nich, ale potem dostaję Tablicę, a nie Relację. To dla mnie problem, ponieważ chcę nazywać takie rzeczy jak limit itd. Plus, myślę, że lepiej byłoby, gdyby skrzyżowanie było wykonywane przez bazę danych, a nie przez kod ruby.

questionAnswers(3)

yourAnswerToTheQuestion