Вопрос:
im, используя Mysql 5.1 и учитывая табличные платежи с помощью столбцов customerid, paymentdate, мне нужен последний платеж всех клиентов.
поэтому таблица с записями
row, customerid, paymentdate 1 5 2011-03-01 2 5 2011-04-01 3 6 2011-01-01 4 7 2011-01-01 5 7 2011-02-01
должен возвращать строки 2,3,5
запрос
select max(paymentdate),customerid from payments where customerid=5;
который я пытался проникнуть в какой-то клиент WHERE (…), но не повезло, поскольку он возвращает 2 столбца не только 1
спасибо
в конце концов ответы вдохновили меня найти соответствующую информацию и решить проблему с помощью
следующий запрос (как описано в комментарии к статье)
select * from (select * from payments order by paymentdate desc) as p group by customerid;
та же проблема из форума mysql
решения из связанной статьи mysql
Ответ №1
Вы должны group by customerid.
select max(paymentdate),customerid from payments group by customerid; Ответ №2
Другой подход:
Select paymentdate,customerid from payments group by customerid order by paymentdate DESC;
Или даже:
Select distinct(customerid),paymentdate from payments order by paymentdate DESC;
Добавление DESC к порядку, заставляя сначала возвращать самые последние даты.