首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql -检索每个子组中的最后一条记录

MySql -检索每个子组中的最后一条记录
EN

Stack Overflow用户
提问于 2013-02-08 20:37:21
回答 2查看 397关注 0票数 0

1.采购表

代码语言:javascript
复制
Id   user     pur_type
----------------------
1    408       5-12
2    408       5-12
3    222       1-11
4    222       5-12
5    408       1-11
6    408       1-11

  1. goods表

代码语言:javascript
复制
Id   parts    days
-----------------
1    1-11      50
2    5-12      40

我实现了这样的查询

代码语言:javascript
复制
SELECT p1.id, p1.user, p1.pur_type, g.parts, g.days
FROM purchase p1
INNER JOIN goods g ON p1.pur_type = g.parts
LEFT JOIN goods p2 ON ( p1.pur_type= p2.pur_type
AND p1.id < p2.id )
WHERE p2.id IS NULL

结果只是每个pur_type最后一条记录

代码语言:javascript
复制
Id   user   pur_type  parts   days
---------------------------------
4    222     5-12     5-12    40
6    408     1-11     1-11    50

如何从每个特定用户的pur_typepurchase表中获取最后一条记录?

例如,对于用户408,需要结果:

代码语言:javascript
复制
Id   user     parts   days
-------------------------
2    408       5-12    40
6    408       1-11    50

结果说明:

用户408的part 5-12的最后一条记录是id=2

用户408的part 1-11的最后一条记录是id=6

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-08 20:39:57

代码语言:javascript
复制
SELECT  a.*, c.* -- select columns youw ant
FROM    Purchase a
        INNER JOIN
        (
            SELECT user, MAX(ID) max_ID
            FROM    Purchase
            GROUP   BY user, pur_type
        ) b ON  a.user = b.user AND
                a.ID = b.max_ID
        INNER JOIN goods c
            ON a.pur_type = c.parts
WHERE   a.USER = 408

  • SQLFiddle Demo

为了获得更好的性能,请在表goods的列parts上以及在pur_type上添加索引

票数 0
EN

Stack Overflow用户

发布于 2013-02-08 20:52:30

对现有查询进行简单修改:

代码语言:javascript
复制
SELECT p1.id, p1.user, p1.pur_type, g.parts, g.days
FROM purchase p1
INNER JOIN goods g ON p1.pur_type = g.parts
LEFT JOIN purchase p2 
       ON ( p1.pur_type= p2.pur_type AND p1.id < p2.id AND p1.user=p2.user)
WHERE p2.id IS NULL and p1.user = 408
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14772760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档