【发布时间】:2010-08-03 10:43:00
【问题描述】:
我正在尝试查找哪些订单按他们的家名,然后按客户的姓氏。
Customer.find(:all,
:conditions =>['customers.id IN (?)', intersection],
:joins => 'JOIN histories ON histories.customer_id = customers.id
JOIN houses ON histories.house_id = houses.id',
:order => "houses.name ASC, customers.last_name ASC",
:select => "customers.*, histories.job_title, houses.name"
)
我的问题是这将返回与每个客户相关的所有历史记录。
如果我添加 AND histories.finish_date IS NULL 这将阻止所选客户的所有历史记录被退回,但也会阻止交叉路口中没有历史记录或完成日期设置的客户被退回。
基本上,我需要交叉路口的每个客户返回一次,并带有当前的房屋名称(如果他们有的话),然后按他们的房屋名称和姓氏排序。
那么有没有办法做到这一点?
这是一个例子
客户
id last_name
1 franks
2 doors
3 greens
历史
id finish_date house_id customer_id
1 NULL 1 1
2 NULL 2 2
3 11/03/10 2 1
4 22/04/09 1 2
NULL = 当前房子
房屋
id name
1 a
2 b
结果
交叉点 = 1,2,3
last_name house
franks a
doors b
greens NULL
谢谢
【问题讨论】:
标签: sql ruby-on-rails activerecord