2015-03-22 2 views
0

Я пытаюсь получить определенный набор результатов с MySQL, и я не уверен, как его снять. Я хочу все от call_logs стол для последней записи timestamp каждого calls_id. Вот что я пытался до сих пор:Неверная строка запроса MySQL

SELECT distinct calls_id FROM call_logs order by timestamp 

Это дает мне только calls_id, хотя. Когда я поставил следующее:

SELECT distinct calls_id, created, modified, viewed FROM call_logs order by timestamp 

возвращает все записи, а не только последний из каждого calls_id.

ответ

-1
$query="select * from call_logs group by calls_id order by timestamp" 
+0

Это вытаскивает только одну запись, но она не самая последняя, ​​если я заказываю по временной отметке asc или desc. Он по-прежнему вытаскивает ту же запись .... первый для каждого – user3211305

+0

, если вы используете Mysql try ** order by max (timestamp) desc ** –

1

Используйте подзапрос, чтобы получить максимальную отметку времени на один идентификатор. Тогда присоединяйтесь обратно к исходной таблице:

select cl.* 
from call_logs cl join 
    (select calls_id, max(timestamp) as maxts 
     from call_logs 
     group by calls_id 
    ) ct 
    on cl.calls_id = ct.calls_id and cl.timestamp = ct.maxts 
+0

Это все еще оставило записи. – user3211305

+1

@ пользователь3211035, что кажется маловероятным – Strawberry

+0

как маловероятно, как кажется, это именно то, что он делает. Вытягивает каждую запись. – user3211305

0

$ запроса = "SELECT * FROM (SELECT * FROM call_logs ORDER BY DESC временной метки) AS t1 GROUP BY calls_id";

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