首頁 > 資料庫 > mysql教程 > 如何從資料庫表中選擇通過所有測試的汽車?

如何從資料庫表中選擇通過所有測試的汽車?

DDD
發布: 2025-01-14 10:19:49
原創
585 人瀏覽過

How to Select Cars That Passed All Tests from a Database Table?

資料庫查詢:辨識通過所有測試的汽車

本指南示範如何從資料庫中有效地選擇已成功完成一組預定義測試的汽車。 我們將重點放在這樣一個場景:我們需要識別 passedtest 表中已通過所有測試(A、B、C 和 D)的汽車。

IN聲明的限制

雖然 IN 語句對於檢查清單中是否存在某個值很有用,但它不適合此特定任務。 使用IN會錯誤地識別僅通過一項所需測試的汽車。 需要一種更穩健的方法。

利用聚合和分組

解決方案在於使用聚合函數和分組。 我們使用 COUNT() 函數來確定每輛車通過的不同測試類型的數量。 然後,GROUP BY 子句按汽車名稱組織結果,使我們能夠對每輛車的不同測試進行計數。

使用 HAVING

濾波結果

HAVING 子句對於過濾分組結果至關重要。 它允許我們隔離具有等於所需測試總數(在本例中為四)的不同測試類型的汽車。

SQL 解

以下 SQL 查詢達到了預期的結果:

<code class="language-sql">SELECT carname
FROM PassedTest
GROUP BY carname
HAVING COUNT(DISTINCT testtype) = 4;</code>
登入後複製

此查詢有效地僅從 carname 表中選擇已通過所有四個指定測試的 passedtest

擴充綜合資料查詢

要檢索有關通過所有測試的汽車的更多詳細信息,可以使用嵌套查詢:

<code class="language-sql">SELECT *
FROM cars
WHERE carname IN (
    SELECT carname
    FROM PassedTest
    GROUP BY carname
    HAVING COUNT(DISTINCT testtype) = 4
);</code>
登入後複製

此增強型查詢從 cars 表中檢索那些被識別為已通過 passedtest 表中所有測試的汽車的所有列。

以上是如何從資料庫表中選擇通過所有測試的汽車?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板