У меня есть несколько массивных запросов SQL, включающих объединение разных моделей в моем приложении rails. Один запрос может включать от 6 до 10 таблиц.Как присоединиться к подзапросам с использованием AREL?
Чтобы быстрее выполнить запрос, я хочу использовать подзапросы в соединениях (таким образом, я могу отфильтровать эти таблицы перед объединением и уменьшить столбцы до тех, которые мне нужны). Я пытаюсь достичь этого, используя AREL.
Я думал, что нашел решение моей проблемы: How to do joins on subqueries in AREL within Rails, , но все должно измениться, потому что я получаю undefined method '[]' for Arel::SelectManager
.
Есть ли у кого-нибудь идеи, как достичь этого (без использования строк)?
Можете ли вы показать запрос, который вы пытаетесь сделать? – mguymon
Ну, чтобы упростить его до крайнего уровня: SELECT A. * INNER JOIN (SELECT B.a_id FROM B WHERE Bc> 4) B ON A.id = B.a_id –
Можете ли вы использовать код Ruby, который вы пытаетесь выполнить для запрос? – mguymon