すべての顧客を最新の注文日(さらにページ番号付け)と共にリストする必要があります。アクティブレコード - 2番目のテーブルでネストされた選択を実行する方法?
アクティブレコードを使用して次のSQLクエリを作成するにはどうすればよいですか?
select *,
(
select max(created_at)
from orders
where orders.customer_id = customers.id
) as latest_order_date
from customers
limit 25 offset 0
私はこれを試してみましたが、それはmissing FROM-clause entry for table "customers"
を文句:
Customer
.select('*')
.select(
Order
.where('customer_id = customers.id')
.maximum(:created_at)
).page(params[:page])
# Generates this (clearly only the Order query):
SELECT MAX("orders"."created_at")
FROM "orders"
WHERE (customer_id = customers.id)
はEDIT:ARのパラメータ化とkaminariのページネーションの良さを保つために良いでしょう。
[ActiveRecordのネストされたSELECT](http:// stackoverflow。com/questions/37377455/activerecord-nested-select) – Iceman
ありがとう、私は可能な重複をチェックしましたが、それは少し異なります。彼らは単一のテーブルから選択します。ここでは、2つのテーブルから選択します。だから、そこの答えはこの問題を解決しません。 –