如何在组mysql表中选择最大值
我有两张桌子:人和日志如何在组mysql表中选择最大值,mysql,sql,database,Mysql,Sql,Database,我有两张桌子:人和日志 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'); INS
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;
但我不知道如何才能为每个用户只显示最后一个日志
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
如果要在结果集中按日志日期降序排序
SELECT min(name), min(surname), max(log_date)
FROM people p1 JOIN log l1
ON p1.id=i1.id
GROUP BY id;
没有测试,但应该可以