我有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;
但我不知道如何才能为每个用户显示最后一个日志。
答案 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;
未经测试,但应该这样做。