Проблема с функцией Max со значениями из других столбцов

У меня есть следующий запрос MySQL:

Select match_static_id, comments as last_comment, max(timestamp)
from comments as c 
group by match_static_id;

У меня есть таблица для комментариев к матчам, и я хочу получить последний комментарий к каждому матчу. поэтому я использую max (timestamp) и group by (match_static_id) для этого, но моя проблема в том, что я получаю максимальную timestamp, сгруппированную match_static_id, но я получаю другой комментарий (не комментарий max timestamp). Мой запрос упорядочен неправильно?


person Basel    schedule 06.09.2013    source источник
comment
Пожалуйста, предоставьте шаблон ввода-вывода. будет очень полезно, если вы предоставите демонстрацию на SQLFiddel.com   -  person Romesh    schedule 06.09.2013


Ответы (2)


Я не эксперт в MySQL, но я чувствую проблему. Это может быть связано с тем, что комментарии не являются частью группы, и будут возвращены все строки, соответствующие match_static_id. Я бы предложил переписать что-то вроде:

select match_static_id, (select Comment from comments c where c.timestamp =max(a.timestamp)) as last_comment, max(timestamp) from comments group by match_staic_id

or

select c.match_static_id, c.comments as last_comment, c.timestamp from comments c inner join (Select max(timestamp) as ts from comments group by match_static_id) temp c.timestamp = temp.ts
person Krishna Sarma    schedule 06.09.2013

Это решит:

SELECT match_static_id, comments AS last_comment, login_time2
  FROM  comments c
WHERE timestamp=
    ( SELECT MAX(timestamp) AS login_time2
      FROM comments WHERE match_static_id=c.match_static_id)
 GROUP BY match_static_id;
person jaczes    schedule 06.09.2013
comment
Этот запрос дает все комментарии, которые я просто хочу получить комментарий к матчу с максимальной отметкой времени - person Basel; 06.09.2013
comment
есть i want to have the latest comment of each match - есть EACH - есть простое обновление в naswer. - person jaczes; 06.09.2013
comment
Хорошо, мой друг, позвольте мне прояснить, что есть недоразумение. Я хочу, чтобы последний комментарий для КАЖДОГО совпадения был правильным, но в вашем первом запросе я получил все комментарии к совпадению с одинаковой отметкой времени для всех из них (максимальная отметка времени). Мне просто нужен один комментарий для каждого совпадения с максимальной отметкой времени. Надеюсь, теперь я ясно выразился - person Basel; 06.09.2013
comment
я понял. смотри сейчас. - person jaczes; 06.09.2013