如何在组mysql表中选择最大值

时间:2014-04-04 02:36:18

标签: mysql sql database

我有2个表:人员和日志

CREATE TABLE people(id int,name varchar(20),surname varchar(20));
CREATE TABLE log(id int,log_date date);

我需要向所有用户显示他们的上次日志。 要测试的数据:

INSERT INTO people VALUES (1, 'John', 'Smith'), (2, 'Elisabeth', 'Taylor'), (3, 'Peter', 'Jackson');
INSERT INTO log VALUES (1,'2014-02-20'),(1,'2014-02-22'),(1,'2014-02-25'),(1,'2014-03-12'),(1,'2014-04-03'),(2,'2014-02-20'),(3,'2014-03-23'),(3,'2014-03-27'),(3,'2014-04-01');

到目前为止,我有这段代码:

SELECT name,surname,log_date    
FROM  people JOIN log USING(id)
GROUP BY id,log_date DESC;

但我不知道如何才能为每个用户显示最后一个日志。

2 个答案:

答案 0 :(得分:1)

SELECT people.id, name, surname, MAX(log_date) AS log_date FROM people INNER JOIN
    log ON people.id = log.id
GROUP BY people.id, name, surname

可选择添加:

ORDER BY log_date DESC

如果要按结果集中的日志日期降序排序

答案 1 :(得分:0)

            SELECT min(name), min(surname), max(log_date)
            FROM people p1 JOIN log l1
            ON p1.id=i1.id
            GROUP BY id;             

未经测试,但应该这样做。