MySQL - получить последнюю запись для заданного списка значений столбцов - PullRequest
0 голосов
/ 29 декабря 2018

У меня следующая структура таблицы:

Таблица запросов:

 id  insret_time             account id
 ------------------------------------
 1  2018-04-05 08:06:23       abc
 2  2018-09-03 08:14:45       abc
 3  2018-08-13 09:23:34       xyz
 4  2018-08-04 09:25:37       def
 5  2018-08-24 11:45:37       def

Мне нужно найти последние записи для идентификаторов счетов abc и def.Я не забочусь о XYZ.

Я пытался получить результаты, используя методы group by и inner join, но не смог ограничить результаты только списком пользователей, который мне небезразличен.Пожалуйста, совет

Обновление: Спасибо всем за ваш отзыв.Ценить это!Мне нужен был весь ряд в качестве вывода.Я использовал столбец идентификатора вместо метки времени, чтобы получить самую последнюю запись с момента ее автоинкремента. Это то, что я наконец-то придумал, что дало мне вывод, который мне нужен:

select t.* FROM table t
join (select max(table.id) as maxNum from table 
where account_id in ('abc','def') group by account_id) tm on t.id = tm.maxNum;

Ответы [ 3 ]

0 голосов
/ 29 декабря 2018

Используйте только where, чтобы получить максимум insert_time и in, чтобы включить только 'abc', 'def':

select t.* from tablename as t where
t.accountid in ('abc', 'def') and
t.insert_time = (select max(insert_time) from tablename where tablename.accountid = t.accountid)
0 голосов
/ 29 декабря 2018

Вы можете использовать not in и игнорировать xyz записи и размещать заказы по desc:

select account_id,max(insert_time) from table where account_id not in ('xyz') group by account_id order by id desc

Также вы можете использовать != операторы только для одного выражения:

select account_id,max(insert_time) from table where account_id!='xyz' group by account_id order by id desc

Надеюсь, это поможет:)

0 голосов
/ 29 декабря 2018

Я думаю, это то, что вы искали

  select account_id,max(insret_time)
  from table where account_id in ('abc', 'def')
  group by account_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...