首頁 > 資料庫 > mysql教程 > 如何使用 SQL 選擇清單中通過所有測試的汽車?

如何使用 SQL 選擇清單中通過所有測試的汽車?

Susan Sarandon
發布: 2025-01-14 10:53:44
原創
691 人瀏覽過

How Can I Select Cars That Passed All Tests in a List Using SQL?

篩選符合清單中所有項目的行

假設您有兩個表,“cars”和“passedtest”,您需要一種方法來識別已通過特定測試集的汽車。 “passedtest”表記錄每輛車通過的測試。

一種實現此目標的方法是使用IN語句。但是,此方法可能無法提供所需的結果,因為它會傳回即使通過指定清單中的一個測試的汽車。要匹配所有行中列表中的所有值,需要另一種解決方案。

以下SQL查詢利用GROUP BY和HAVING子句來完成此任務:

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

此查詢首先按「carname」欄位對「passedtest」表中的行進行分組。然後,它使用COUNT(DISTINCT)函數計算每輛車的不同「testtype」值的計數。 HAVING子句用於篩選結果,只選擇不同測試類型計數等於4的汽車(假設清單中有四個測試)。

您也可以使用此查詢的結果作為巢狀語句,從「cars」表中提取其他資訊:

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

此擴充查詢將為符合指定條件的車輛從「cars」表中檢索所有相關資料。

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

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