> I'm trying to build a query that looks like this:
> @book_pages, @books = paginate(:books, > :per_page => 20, > :conditions => ['book.author.name like ?', '%jim%], > :order_by => @sort_order)
thats how it should look like : --->> paginate(:book, :include=>[:author], ..., :conditions=>["authors.name like ?", '%jim%']) the include statement operates a join in the sql query. See eager loading for more explanations.
The problem with eager loading is that it uses LEFT JOIN. So it will do something like:
SELECT ... FROM books LEFT JOIN authors ON books.author_id = authors.id WHERE authors.name like '%jim%';
At least on mysql this forces the server to scan first the books table and only then the authors table, so the optimizer cannot do its job properly.
Is there some :include -like option that uses inner joins?
Thanks! HoraPe