Tôi có một vài yêu cầu SQL lớn liên quan đến tham gia trên các mô hình khác nhau trong ứng dụng đường ray của tôi. Một yêu cầu duy nhất có thể liên quan đến 6 đến 10 bảng.Làm cách nào để tham gia vào các truy vấn phụ bằng AREL?
Để chạy yêu cầu nhanh hơn, tôi muốn sử dụng truy vấn phụ trong các kết nối (theo cách đó tôi có thể lọc các bảng này trước khi tham gia và giảm các cột vào bảng tôi cần). Tôi đang cố gắng để đạt được điều này bằng cách sử dụng AREL.
Tôi nghĩ rằng tôi đã tìm ra giải pháp cho vấn đề của mình ở đó: How to do joins on subqueries in AREL within Rails, nhưng mọi thứ phải thay đổi vì tôi nhận được undefined method '[]' for Arel::SelectManager
.
Có ai có ý tưởng làm thế nào để đạt được điều này (không sử dụng dây)?
Bạn có thể hiển thị truy vấn bạn đang cố gắng không? – mguymon
Vâng để đơn giản hóa nó đến mức độ cực đoan: SELECT A. * INNER JOIN (SELECT B.a_id TỪ B Ở đâu Bc> 4) B ON A.id = B.a_id –
Bạn có nên mã Ruby bạn đang cố gắng cho truy vấn? – mguymon