我在 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 |
+----+------+------------+-------+
我想返回这样的表格:
+------+------------+-------+
| 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)
如何更改脚本以在我的服务器版本上运行? 谢谢!
最佳答案
您可以申请自加入;
select t1.* from table1 t1 inner join
(select code,max(date) maxDate from table1 group by code) t2
ON t1.code = t2.code and t1.date = t2.maxDate
关于mysql 分组依据和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48349466/