2
我有以下两种模式:ActiveRecord的存在子查询
class Client < ActiveRecord::Base
has_many :orders
end
class Order < ActiveRecord::Base
belongs_to :client
end
我想在同一时间查询与在列表中规定的订单(订单_1,订单_2),客户,需要客户的所有订单 。我可以通过下面的SQL做到这一点:
SELECT *
FROM CLIENTS C
JOIN ORDERS O
ON C.ID = O.CLIENT_ID
WHERE EXISTS
(SELECT *
FROM CLIENTS C1
JOIN ORDERS O1
ON C1.ID = O1.CLIENT_ID
WHERE O1.ID IN ('order_1', 'order_2')
AND C1.ID = C.ID
);
有没有办法在轨的方式来做到这一点?下面的代码会给出满意的客户端,但client.orders只返回指定的订单。
clients.includes(:orders).where(orders: { id: ['order_1', 'order_2'] })
我不知道如何获得一个查询中的所有信息。