如何从Oracle SQL中的2个表中提取每个ID的最新记录[重复]

Posted

技术标签:

【中文标题】如何从Oracle SQL中的2个表中提取每个ID的最新记录[重复]【英文标题】:how to pull latest record for each ID from 2 tables in Oracle SQL [duplicate] 【发布时间】:2021-11-02 05:53:33 【问题描述】:

我有 2 个表名为 - Productsold_product

sold_product

product_code    sold_date   product_id  product_rating
46077862546     18/08/21    380         3.5
41237862546     18/08/21    300         5.0
41237862789     06/08/21    356         4.0
            

产品

product_id  product_name    rack_no 
380         Television      5   
344         Refridgerator   4   
333         Air Conditioner 6   

现在我需要为每个带有 product_code 和 product_name 的 product_id 提取最新的 sold_date。 每个 product_id 在产品表中都有一个(唯一)条目。

【问题讨论】:

最新的sold_date显然是max(sold_date) 【参考方案1】:

试试下面这样:

select p.product_id, s.product_code, p.product_name, max(s.sold_date)
from product p
left join sold_product s on s.product_id = p.product_id
group by p.product_id, s.product_code, p.product_name

【讨论】:

【参考方案2】:

试试这个:

select ap.prid,ap.prcode, a.name, ap.MaxDate from product a,(select prCode,prid, max(soldDate) as MaxDate 
from sold_product
group by prid) ap where a.id=ap.prid;

【讨论】:

以上是关于如何从Oracle SQL中的2个表中提取每个ID的最新记录[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 sql 中的 2 个表中按组聚合和计算平均值?

从 2 个表中获取数据到 excel 表中

SQL如何从有条件的2个表中获取数据

sql 从表中选择未出现在第二个表中的所有内容

如何从 5 个表中选择多个值?

Oracle - 使用第二个表中的行更新第一个表中的数据