2017-02-25 62 views
0

TABLE最大日期/時間1從不同ID的

id time     user 
1 2016-12-19 13:57:00 32 
1 2016-12-19 14:57:00 32 
1 2016-12-24 09:57:00 654 
2 2017-02-17 10:54:00 654 
2 2017-02-17 16:04:00 654 
2 2017-02-23 00:54:00 1001 

表2

user status 
32 admin 
654 admin 
1001 new 

我想從表2,如果從 「表1」 和匹配status得到每個id最大time它是新的。

重要的是如何從每個id獲得最大time

結果應該是

id time     status 
2 2017-02-23 00:54:00 new 
+0

SELECT MAX(time)FROM table1 WHERE id = 1 –

回答

0

max功能只需連接兩個表user,然後按id

select tbl1.id, max(tbl1.`time`) as `time`, tbl2.`status` 
from tbl1 
join tbl2 on tbl1.user = tbl2.user 
where tbl2.`status` = 'new' 
group by tbl1.id 

Demo這裏。

0

接聽

重要的是如何從每個ID獲得最大的時間?

查詢的一部分。

Select id,max(time) 
From Table1 
group by id 
0

你可以以各種方式從第一表的最大行。這裏是一個:

select t1.* 
from table1 t1 
where t1.time = (select max(tt1.time) from t1 tt1 where tt1.id = t1.id); 

然後,您可以爲列從table2擴展這個:

select t1.*, t2.* 
from table1 t1 join 
    table2 t2 
    on t1.user = t2.user 
where t1.time = (select max(tt1.time) from t1 tt1 where tt1.id = t1.id); 
0

演示網站:http://sqlfiddle.com/#!9/260e8/6

VALUES 
(1, '2016-12-19 13:57:00', 32), 
(1, '2016-12-19 14:57:00', 32), 
(1, '2016-12-24 09:57:00', 654), 

當我運行腳本爲

Select user,max(time) From tbl1 where id = '1'

OUTPUT MAX(時間)= 2016年12月24日9點57分○○秒

用戶= 32 // WRONG應該是654!

如何從max(time)獲得最終用戶?