2013-09-06 4 views
0

У меня есть следующий запрос: 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) для этого, но моя проблема заключается в том, что я получаю максимальную временную метку, сгруппированную по match_static_id, но я получаю другой комментарий (а не комментарий максимальной отметки времени) Является ли мой запрос упорядоченным в неправильном путь?

+0

Просьба представить некоторый входной выходной шаблон. это будет очень полезно, если вы сможете предоставить демо на [SQLFiddel.com] (http://sqlfiddle.com/) – Romesh

ответ

0

Я не эксперт в 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 

или

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 
0

Это позволит решить:

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; 
+0

Этот запрос дает все комментарии, которые я просто хочу получить комментарий к совпадению с максимальным timestamp – Basel

+0

есть 'я хочу иметь последний комментарий каждого матча' - есть' EACH' - в naswer есть простое обновление. – jaczes

+0

ОК, мой друг, позвольте мне понять, что есть недоразумение. Я хочу, чтобы последний комментарий для соответствия EACH был правильным, но в вашем первом запросе я получил все комментарии к совпадению с одинаковой меткой времени для всех из них (максимальная временная метка). Мне просто нужен один комментарий каждого матча, который совпадает с максимальной меткой времени. Надеюсь, теперь я дам себе понять. – Basel

Смежные вопросы