Ai đó có thể giúp tôi tìm ra cách viết SQL sau bằng phương thức Rails (Tôi đang sử dụng Rails 4) Activerecord? Tôi biết bạn có thể làm điều này với find_by_sql nhưng tôi muốn duy trì mối quan hệ hồ sơ hoạt động. Đây là sql cho một db PostgreSQL mà tôi đang cố gắng để tạo ra:Rails Activerecord Relation: sử dụng truy vấn con dưới dạng bảng cho câu lệnh chọn SQL
SELECT * FROM
(SELECT DISTINCT ON(table_a.id) table_a.name as alias_a, table_b.id, table_b.time
FROM table_1
LEFT OUTER JOIN table_b ON table_a.id = table_b.id
ORDER BY table_a.id, table_b.time asc) AS subquery
ORDER BY alias_a asc
Đối subquery của tôi, tôi đã như sau (mà tạo ra sql của subquery trên):
@subquery = table_a.select("DISTINCT ON(table_a.id) table_a.name as alias_a, table_b.time")
@subquery = @subquery.joins("LEFT OUTER JOIN table_b ON table_a.id = table_b.id")
@subquery = @subquery.order("table_a.id, table_b.time asc")
Nhưng, Tôi không thể tìm ra cách viết một câu lệnh chọn sử dụng @subquery làm bảng cho câu lệnh chọn ngoài.
Cảm ơn! Để tham khảo trong tương lai, tôi đã tìm thấy danh sách các phương thức truy vấn cho đường ray tại: http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-from – Vee