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'] })
我不知道如何獲得一個查詢中的所有信息。