如何通過多表查詢獲取特定公司下所有產品的最新檢測報告?

如何通過多表查詢獲取特定公司下所有產品的最新檢測報告?

多表查詢最新檢測報告

求取特定公司下所有產品的最新檢測報告,通常要進行多表查詢。本文將通過處理產品信息表和檢測信息表兩個表的關聯數據,解決此問題。

給定兩張表:產品信息表 pro 和檢測信息表 procheck。pro 表中 company_id 字段用于關聯公司信息,而 procheck 表中的 pro_id 字段與 pro 表中的 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;

這個查詢通過以下步驟得出最新檢測報告:

  1. 使用子查詢求出 procheck 表中每個產品對應的最新 checkdate,形成臨時表 t2。
  2. 將 t1 和 t2 在 pro_id 和 checkdate 字段上進行連接,確保僅選擇 procheck 表中的最新檢測報告。
  3. 最終結果中將包含該特定公司下的所有產品的最新檢測報告。

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