Я пытаюсь найти, какие заказы получаются по имени их дома, а затем по фамилии клиента.
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 history..finish_date = NULL
Это предотвратит возвращение каждой истории для выбранного клиента, но также предотвратит возвращение клиентов на перекрестке, у которых нет истории или задан параметр finish_date.
В основном мне нужно, чтобы каждый покупатель на перекрестке возвращался один раз с указанием текущего имени дома (если он есть), а затем заказывал по имени дома, а затем по фамилии.
Так есть ли способ сделать это?
Вот пример
клиент
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
Спасибо