我遇到的问题与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}})
但这并没有给我那些没有下订单的客户......有人可以帮忙吗?
答案 0 :(得分:1)
我认为这样做会:
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]