这个问题在这里已经有答案了:
检索每个组中的最后一条记录-mysql(29个答案)
两年前关门了。
我在mysql中有一个表:
+----+------+------------+-------+
| id | code | date | value |
+----+------+------------+-------+
| 1 | 3 | 2016-01-01 | 3 |
| 2 | 3 | 2016-01-02 | 4 |
| 3 | 3 | 2016-03-01 | 6 |
| 4 | 3 | 2016-06-06 | 5 |
| 5 | 8 | 2016-01-01 | 1 |
| 6 | 8 | 2016-09-09 | 3 |
+----+------+------------+-------+
我想退回这样一张table:
+------+------------+-------+
| code | date | value |
+------+------------+-------+
| 3 | 2016-06-06 | 5 |
| 8 | 2016-09-09 | 3 |
+------+------------+-------+
我的服务器设置是:
**MySQL**
Server: localhost via TCP/IP
Server version: 5.5.16
Protocol version: 10
User: root@localhost
MySQL charset: UTF-8 Unicode (utf8)
**Web server**
Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8
MySQL client version: mysqlnd 5.0.8-dev - 20102224 - $Revision: 310735 $
我尝试了这个脚本,但没有成功:
SELECT *
FROM tbl_mysql
WHERE date IN (SELECT MAX(date) FROM tbl_mysql GROUP BY code)
如何更改脚本以在服务器版本上工作?谢谢您!
2条答案
按热度按时间8dtrkrch1#
http://sqlfiddle.com/#!9/4cf933/2号
9lowa7mx2#
您可以应用self-join;
演示