2017-09-14 127 views
1

嗨,我曾在MySQL查询疑问MySQL的时间戳比较问题

mysql> SELECT * from share5; 
+----+-------+--------------+--------+-------+---------------------+ 
| Id | Price | State  | Symbol | Trade | created_date  | 
+----+-------+--------------+--------+-------+---------------------+ 
| 1 | 120 | maharashtra | mh  | buy | 2017-09-12 12:18:11 | 
| 1 | 121 | maharashtra | mh  | buy | 2017-09-12 12:18:36 | 
| 2 | 122 | karnataka | ka  | sell | 2017-09-12 12:19:26 | 
| 2 | 123 | karnataka | ka  | sell | 2017-09-12 12:20:00 | 
| 3 | 124 | tamil nadu | tn  | buy | 2017-09-12 12:20:30 | 
| 3 | 125 | tamil nadu | tn  | buy | 2017-09-12 12:20:43 | 
| 4 | 127 | andrapradesh | ap  | buy | 2017-09-12 12:26:26 | 
| 4 | 126 | andrapradesh | ap  | buy | 2017-09-12 12:26:39 | 
| 4 | 126 | andrapradesh | ap  | buy | 2017-09-12 16:57:19 | 
+----+-------+--------------+--------+-------+---------------------+ 

我想通过比较2个ID对如来选择指数最新值以上,我想通过比较时间戳来筛选出最新的一个。 我尝试了下面的一个,但它只给出了第一个不是最新的附加值。 是否可以比较两个ID并筛选出最新的ID?

mysql> SELECT price,id,state,symbol,trade,created_date from share5 group by id ; 
+-------+----+--------------+--------+-------+---------------------+ 
| price | id | state  | symbol | trade | created_date  | 
+-------+----+--------------+--------+-------+---------------------+ 
| 120 | 1 | maharashtra | mh  | buy | 2017-09-12 12:18:11 | 
| 122 | 2 | karnataka | ka  | sell | 2017-09-12 12:19:26 | 
| 124 | 3 | tamil nadu | tn  | buy | 2017-09-12 12:20:30 | 
| 127 | 4 | andrapradesh | ap  | buy | 2017-09-12 12:26:26 | 
+-------+----+--------------+--------+-------+---------------------+ 
+0

尝试从share5组中通过id DESC选择价格,id,状态,符号,trade,created_date; –

回答

0

从每个组获得最新的行,你可以使用下面的查询

select t.* 
from share5 t 
join (
    select Id,max(created_date) created_date 
    from share5 
    group by Id 
) t1 using(Id,created_date) 

DEMO

+1

其工作感谢代码khalid –

0

好像你缺少ORDER_BY,你可以尝试

SELECT price,id,state,symbol,trade,created_date from share5 group by id order by created_date desc; 
0

尝试这个:

SELECT price,id,state,symbol,trade,created_date from share5 where created_date = (select max(created_date)from Customers) group by id,price,state,symbol,trade,created_date