Join table и сортировка ее в обратном порядке

Manyahin

Новичок
Привет, есть две таблицы, клиенты и их заказы. Цель, выбрать пользователей, у которых последний заказ совершен более месяца назад.

Я составил такой SQL запрос:
SELECT users.id, users.name
FROM users
LEFT JOIN orders ON users.id = orders.user_id
WHERE orders.created < NOW() - INTERVAL 2 MONTH
GROUP BY users.id
ORDER BY orders.created DESC
Но есть проблема, он сравнивает самый первый заказ в таблице, в место того, что бы сравнить последний заказ пользователя. ORDER BY orders.id DESC не помогает, помогите с решением.
 

prolis

Новичок
Код:
select * from users,
(
 select user_id, max(created)as last
  from orders
  group by user_id
) as o
where users.id = o.user_id
and last < NOW() - INTERVAL 2 MONTH
 
Последнее редактирование:

Manyahin

Новичок
Круто! Но, не работает. Он вытаскивает первую заявку, которая совершена более двух месяцев назад. Не считая других заявок пользователя, которые сделаны позднее.

Возможно, я неправильно поставил вопрос. Надо вытащить пользователей, у которых ПОСЛЕДНЯЯ заявка сделана более двух месяцев назад.
 

prolis

Новичок
ещё раз проверь - в предыдущем сообщении до редактирования не там стоял "last <..."
 
Сверху