2012-04-20 70 views
0

无法了解如何使一个选择: 表结构:MySQL的狡猾选择

id name value date 
1 ivan 2 2010-01-01 
2 ivan 3 2010-05-08 
3 ivan 1 2009-04-14 
4 sasha 2 2011-11-11 
5 sasha 9 2012-04-04 

如何获得?:

name value(in last time) 
ivan 3 
sasha 9 

回答

0

这个查询应该工作

select f.name, f.value, f.date 
from (
    select id,name,max(date) as dat from tableName group by name 
) as x inner join tableName as f on f.name = x.name and f.date = x.dat; 
+0

哦!谢谢!是工作! – Oleg 2012-04-20 12:38:26

1

这是未经测试,但应该工作:

SELECT 
    name, 
    MAX(value) 
FROM 
    structure 
GROUP BY 
    name 
+0

'SELECT名,MAX(值)...' – 2012-04-20 11:37:45

+0

@ypercube哎呀,谢谢。 – Bojangles 2012-04-20 11:39:20

+0

它没有工作。 – Oleg 2012-04-20 11:40:16

0
SELECT DISTINCT name, value FROM table ORDER BY date DESC 

那是我从你的cu迄今为止的描述。

+0

对不起! 我的情况是两张桌子。 我认为它的工作是平等的。 – Oleg 2012-04-20 12:13:07

0

事情是这样的:

SELECT 
    MAX(value), 
    name 
FROM 
    Table 
GROUP BY 
    name