[英]Select last inserted records and grouping mysql
我有一张带笔记的桌子。 下面是我的数据库的一小部分数据样本。
Id register_no name classification possibility
1 112 Ben Red 10%
2 112 Ben Red 10%
3 113 Ben Red 20%
4 112 Ben Amber 30%
5 112 Ben Amber 10%
6 113 Ben Amber 30%
7 113 Ben Red 10%
8 112 Ben Red 50%
对不起,我以错误的方式解释了这个问题。
实际上我想要的是检索每个register_no的最后一个插入记录,因为sales_log表包含列表进度...
例如,Register_no 112在数据库中有12条记录,最后一条记录是90%(它从10,40,60%进展,因此所有这些记录都在数据库中)
我想要的是得到90%的register_no 112等等......它不仅仅是一条记录......大约有500个register_no,我想得到每个register_no的最后一个条目
希望这次有意义
您应该尝试此查询以获取具有最大id
值的寄存器号的注释:
SELECT n1.*
FROM notes n1
LEFT JOIN notes n2
ON (n1.register_no = n2.register_no AND n1.id < n2.id)
WHERE n2.id IS NULL;
来源: 检索每组中的最后一条记录
尝试
SELECT * FROM (`sales_log`) WHERE 1 ORDER BY `id` DESC LIMIT 2
告诉msyql匹配'name = ben'永远不会找到mandy的id 7
采用
SELECT * FROM sales_log WHERE `classification` = 'red' ORDER BY `Id` DESC LIMIT 2;
这应该工作:
SELECT data.*
FROM sales_log AS data
JOIN
(
SELECT MAX(Id) as Id
FROM sales_log
GROUP BY register_no
) AS newest
ON data.Id = newest.Id
结果:
'8', '112', 'Ben', 'Red', '50'
'7', '113', 'Ben', 'Red', '10'
编辑:我只看了@ Omesh的链接,显然他发布的解决方案要快得多。 它产生与我的查询完全相同的输出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.