解决多表查询最新检测报告问题
问题:
需要根据产品信息表(pro)和检测信息表(procheck)查询某个公司(company_id)生产的所有产品的最新一次检测报告。现有的查询语句无法过滤出最新检测报告,导致结果过多。
解决方法:
首先,需要查询出 procheck 表中每个产品对应的最新 checkdate。可以使用以下语句:
select pro_id, max(checkdate) as max_checkdate from procheck group by pro_id
登录后复制
然后,将上述语句作为一个子查询,与原始查询语句连接,按照 pro_id 和 checkdate 进行筛选,即可得到最新检测报告:
(原始查询语句) t1 JOIN ( SELECT pro_id, MAX(checkdate) AS max_checkdate FROM procheck GROUP BY pro_id ) t2 ON t1.procheck__pro_id = t2.pro_id AND t1.procheck__checkdate = t2.max_checkdate;
登录后复制