ActiveRecord MySQL и JOINS - PullRequest
0 голосов
/ 08 мая 2009

У меня проблема, очень похожая на проблему, описанную здесь в RubyOnRails Guide .

Этот запрос:

Client.all :joins => :orders, 
           :conditions => { :orders => {:created_at => time_range}}

должен вернуть всех клиентов с их заказами, если они сделали несколько заказов в пределах временного диапазона. Я прав?

То, что я хочу, немного отличается: я хочу, чтобы все клиенты, сделали они заказ или нет, во временном диапазоне. Если они сделали несколько заказов, я хочу их, хотя. Я придумал это:

Client.all :joins => 'LEFT OUTER JOIN orders ON orders.client_id = clients.id',
           :conditions => {:orders => {:created_at => time_range}})

Но это не дает мне клиентов, которые не сделали заказ ... Может кто-нибудь помочь с этим?

1 Ответ

1 голос
/ 08 мая 2009

Я думаю, что это сделает это:

Client.all :joins => 'LEFT OUTER JOIN orders ON orders.client_id = clients.id',
       :conditions => ['orders.created_at IN (?) OR orders.id IS NULL', time_range]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...