select a from erp_pdd_inventory_change_history a inner join select maxcreate_dateidproduct_sku_id form erp_pdd_inventory_change_history group by product_sku_id bon aid = bid and aproduct_sku_id = bpro
这个查询语句可能会导致数据错乱。原因是在子查询中,使用了聚合函数max()来获取每个product_sku_id的最大create_date,但是没有对其他字段进行聚合。这样在与主查询进行连接时,可能会将不同的记录进行匹配,导致数据错乱。正确的写法应该是对所有字段进行聚合,或者使用窗口函数来获取最大create_date。例如:
SELECT a.* FROM erp_pdd_inventory_change_history a INNER JOIN ( SELECT id, product_sku_id FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY product_sku_id ORDER BY create_date DESC) AS rn FROM erp_pdd_inventory_change_history ) t WHERE rn = 1 ) b ON a.id = b.id AND a.product_sku_id = b.product_sku_id
原文地址: https://www.cveoy.top/t/topic/ihGT 著作权归作者所有。请勿转载和采集!