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

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

DDD
发布: 2025-01-14 11:13:44
原创
845 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板