如何查詢特定公司所有產品的最新一次檢測報告?

如何查詢特定公司所有產品的最新一次檢測報告?

多表查詢:獲取特定公司產品的最新一次檢測報告

在兩個表相互關聯的情況下,有時需要查詢多張表以獲取所需數據。例如,如果我們有兩張表:產品信息表(pro)和檢測信息表(procheck),其中 procheck 表中的 pro_id 與 pro 表中的 id 關聯。每個產品可能有多個檢測記錄。

問題:

如何查詢某個特定公司(pro 表中的 company_id)生產的所有產品的最新一次檢測報告?

示例查詢:

select `pro`.`id`,`pro`.`pm`,`pro`.`company_id`,procheck.id as procheck__id,procheck.pro_id as procheck__pro_id,procheck.checkdate as procheck__checkdate  from `da_pro` `pro`  left join `da_procheck` `procheck` on `pro`.`id`=`procheck`.`pro_id`  where `pro`.`company_id` = 487

然而,此查詢返回了該公司的所有檢測記錄,而不是按產品分組的最新記錄。

解決方案:

為了獲取最新記錄,需要使用子查詢來識別每個產品對應的最新檢測日期。然后,將此子查詢與原始查詢連接起來,以篩選出最新日期的記錄。

修正后的查詢:

(你的 SQL 語句) 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;

此查詢將返回每個產品的最新檢測報告,滿足特定公司(company_id = 487)的過濾條件。

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享