выбрать самые последние из ненормализованных данных в MySQL - PullRequest
1 голос
/ 29 марта 2012

У меня есть таблица в mysql, которая не нормализована, и мне нужно выполнить запрос, чтобы она сгруппировалась по определенному полю и выдала самую последнюю строку.

Например, таблица выглядит как

callername | callerdate | incoming | status

И я пытаюсь получить все записи, которые имеют самый последний статус как NotAnswered, и я не могу понять, как вы это сделаете, я могу GROUP BY имя вызывающего абонента, однако я не могу понять, как чтобы получить самые последние значения.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 29 марта 2012
SELECT A.* FROM
YOURTABLE A,
( 
SELECT callername,callerdate,MAX(ID) AS ID 
FROM YOURTABLE
WHERE status='NotAnswered'
GROUP BY callername,callerdate
) B
WHERE A.ID=B.ID;
1 голос
/ 29 марта 2012
SELECT
  yourTable.*
FROM 
  yourTable
INNER JOIN
(
  SELECT
    callername,
    MAX(callerdate) AS callerdate
  FROM
    yourTable
  GROUP BY
    calledname
)
  AS mostRecent
    ON  mostRecent.callername = yourTable.callername
    AND mostRecent.callerdate = yourTable.callerdate
WHERE
  yourTable.status='NotAnswered'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...