Как получить конкретную строку из базы данных, используя MySQL

0

У меня ниже таблицы (образец):

ID        Value           Date
TT-12     call rs         2018-04-01 15:18:22
TT-12     srte er         2018-04-02 12:15:18
TT-12     efft rs         2018-04-03 13:04:08
TT-14     efft rs         2018-04-04 17:16:10
TT-14     call rs         2018-04-05 16:25:43
TT-14     srte rs         2018-04-06 21:11:47
TT-18     srte rs         2018-04-07 22:18:34
TT-18     call rs         2018-04-08 07:11:35
TT-18     call rs         2018-04-09 13:07:25

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

Требуемый вывод:

ID        Value           Date
TT-12     call rs         2018-04-01 15:18:22
TT-14     call rs         2018-04-05 16:25:43
TT-18     call rs         2018-04-08 07:11:35

Я пытаюсь: select ID,Value,Date from Table1 where ID in ('TT-12','TT-14','TT-18') and order by Value='call rs';

Теги:

3 ответа

0
Лучший ответ

Сделайте самостоятельное соединение, чтобы получить самую старшую строку на ID

SELECT 
  a.* 
FROM
  table1 a 
  LEFT JOIN table1 b 
    ON a.ID = b.ID 
    AND a.'Date' > b.'Date' 
    AND b.'Value' = 'call rs' 
WHERE b.ID IS NULL 
  AND a.'Value' = 'call rs' 
  AND a.ID IN ('TT-12', 'TT-14', 'TT-18')

демонстрация

0

Попробуй это,

select ID, Value, min(Date) as date
from <Table>
where ID in ('TT-12','TT-14','TT-18') and Value = 'call rs'
group by ID, Value
0
select ID,Value,Date from Table1 where Value='call rs' group by ID order by Date desc;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню