首页 >数据库 >mysql教程 >如何选择列表中已通过所有测试的汽车?

如何选择列表中已通过所有测试的汽车?

DDD
DDD原创
2025-01-14 11:13:44888浏览

How to Select Cars That Have Passed All Tests in a List?

筛选成功完成所有测试的汽车

从给定列表中有效识别已通过所有必需测试的汽车需要比简单的IN操作员检查更复杂的方法,特别是在处理多个测试时。 更准确的方法利用 GROUP BYHAVING 子句的力量。

考虑此 SQL 查询来选择已通过预定义集中的每个测试的汽车:

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

此查询按 carname 对结果进行分组,并将 HAVING 子句与 COUNT(DISTINCT testtype) 一起使用。这可确保输出中仅包含已通过四种不同测试类型(假设列表中有四种测试)的汽车。

为了获得更全面的结果,将其作为子查询与 cars 表合并可以检索其他汽车详细信息:

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

此改进的查询提供了精确且完整的汽车选择,成功通过了定义列表中的所有测试。

以上是如何选择列表中已通过所有测试的汽车?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn