2015-06-02 2 views
1

У меня есть два объекта - Заказчики & Проверка клиентов. Каждый клиент имеет много проверок, и каждый checkin принадлежит одному клиенту.Левое внешнее соединение в рельсах

Мне нужно найти запрос, который выводит полный список клиентов вместе с их количеством проверок в месяц. Мой текущий запрос показан ниже:

customer = Customer.where(account_id: 139).joins('LEFT JOIN 
    customer_checkins on customer_checkins.customer_id = 
    customers.id').uniq.select("COUNT(*) as count, customers.created_at as 
    created_at, customers.name, customers.telephone, customers.mobile, 
    customers.email, customers.gender, customers.city, 
    customers.birthday,date_format(customer_checkins.created_at, '%b') as 
    'month', customers.id").group("customer_checkins.customer_id, 
    date_format(customer_checkins.created_at, '%b %Y')") 

В этом запросе не перечислены все клиенты. Что не так с моим кодом?

+0

Предполагая, что вы не получаете сообщение об ошибке, вы установили * default_scope *? Если да, вы можете использовать незащищенные (т. Е. Customer.unscoped.where ..) – Roger

ответ

0

Это не список всех клиентов, потому что вы ищете только для тех, с ACCOUNT_ID: 139.

Заменить

customer = Customer.where(account_id: 139)... 

С

customer = Customer... 
Смежные вопросы