首页 > 解决方案 > 检索重复的最新记录的问题

问题描述

我在检索具有重复 ID 的最新记录时遇到问题。

产品表

product id            prodoctcode
1                     po1
2                     po2
3                     po3
4                     po4
5                     po5
6                     po6
7                     po7

价格表

priceid   product id              price         yearadded
1              1                     10            2018
2              1                     13            2019
3              2                     14            2015
4              2                     15            2016
5              3                     16            2019
6              4                     17            2017
7              4                     18            2015

我想要只检索最新记录的结果。

product id            prodoctcode      price    yearadded
1                        po1              13        2019
2                        po2              15        2016
3                        po3              16        2019
4                        po4              17        2017

我尝试了选择distinct(product id) 但没有运气

标签: mysqlsql

解决方案


您还需要加入 max yeardded 的子查询

select 
    a.`product id`, a.prodoctcode, b.price, b.yearadded 
from  
    producttable a 
inner join 
    pricetable  b on a.`product id` = b.`product id`
inner join  
     (select `product id`, max(yearadded) year
      from pricetable 
      group by `product id`) on t.`product id` = b.`product id` and t.year = b.yearadded

推荐阅读