В моей таблице Raw_deals содержится около 30 000 записей, а в таблице raw_cities - около 30 записей, и каждая сделка связана с 5-8 городами.
Теперь я хочу получить любую случайную сделку в некоторых городах.
Список этих городов можно получить так:
@raw_cities = RawCity.where('disabled = ?', 0).map(&:id)
Теперь мне нужна сделка. Я написал запрос, но он занимает слишком много времени.
@raw_deal = RawDeal.order("RAND()").find(:first,:joins=>[:raw_cities], :conditions=>["raw_cities.id IN (?)",@raw_cities])