我有一個SQL查詢是這樣的:該查詢可以被更有效地重寫嗎?
select *
from orders
where order_session_id IN (
select id order_status
from order_sessions
where order_status IN (
select id
from order_status_types
where order_status != "Paid"
)
)
這返回的哈希值。我用紅寶石寫了它,但我感覺它可以被優化。
@orders = []
paid_order_status_id = OrderStatusType.find_by_order_status("Paid").id
OrderSession.where('order_status != ?',paid_order_status_id).each { |unpaid_order|
@orders << Order.find(unpaid_order.id)
}
@CoderSeven你知道OP不處理原始SQL和相當活躍的記錄? – andy 2013-03-12 14:00:44
@CoderSeven那麼你沒有處理SQL,所以連接是無關緊要的。 Rails自動加入。 'Post.find(1).users'用'post_id = 1'查找所有用戶。 – andy 2013-03-12 14:05:08
啊,你知道的越多!謝謝。我熟悉ORM,而不是ActiveRecord。 – mawburn 2013-03-12 14:06:28