亚洲国产第一_开心网五月色综合亚洲_日本一级特黄特色大片免费观看_久久久久久久久久免观看

Hello! 歡迎來到小浪云!


如何在多表查詢中獲取某個公司的所有產品的最新檢測報告?


avatar
小浪云 2024-11-11 186

如何在多表查詢中獲取某個公司的所有產品的最新檢測報告?

如何在多表查詢中獲取某個公司的最新檢測報告?

在多表查詢中,我們需要考慮如何從不同表中提取相關數據。考慮以下場景:

有兩張表,分別存儲產品信息(pro)和檢測信息(procheck),其中 procheck 中的 pro_id 與 pro 中的 id 關聯,每個產品可能對應多個檢測信息記錄。

現在我們要查詢某個特定公司(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
登錄后復制

為了獲取最新的檢測報告,我們需要進一步篩選信息。首先,我們需要查詢 procheck 表中的每個產品的最新 checkdate

select pro_id, max(checkdate) as max_checkdate from procheck group by pro_id
登錄后復制

然后,我們將此結果與初始查詢的表(稱為 t1)進行連接,并使用 procheck__pro_id 和 procheck__checkdate 進行匹配。最終的查詢如下:

SELECT t1.* FROM 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;
登錄后復制

這樣就能得到某個特定公司生產的所有產品的最新一次檢測報告。

相關閱讀