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.