Запрос: Поиск покупателей, купивших меньше всего товаров.
У меня получается только так:
SELECT c.name, c.lastname FROM customer c INNER JOIN customer_product cp ON cp.customer_id = c.id GROUP BY c.name, c.lastname HAVING COUNT(cp.product_id) < 2 limit 3;
Т.е., работает правильно, но только, потому что я знаю, что у меня в таблице покупатель купил 1 продукт - это самый минимальный, остальные сделали покупок больше, чем 3. Но если я добавлю к нему еще покупок, то ествественно не найдет.. Т.е. вместо двойки надо что-то подставить, а не знаю что, помогите.. Быть может запрос вообще не так составляю?
Выбирать надо count(*), name, lastname из Customer_Product объединять с Customer через left join. Группировать по customer_id и отсортировать по count(*).