sql – 选择与列表中的所有项匹配的行

前端之家收集整理的这篇文章主要介绍了sql – 选择与列表中的所有项匹配的行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有两个表:

汽车 – 汽车清单

@H_301_4@carname | modelnumber | ...@H_404_5@

passtest – 包含汽车通过的每项测试:

@H_301_4@id | carname | testtype | date | ... 1 | carA | A | 2000 | 2 | carB | C | 2000 | 3 | carC | D | 2001 | 4 | carA | C | 2002 |@H_404_5@

现在,如何从通过所有测试(A,B,C,D)的passtest表中选择一辆汽车?

我尝试了IN语句,但它也匹配甚至通过一次测试的汽车。我正在寻找一个语句来匹配所有行中列表中的所有值。

解决方法

这个怎么样? @H_301_4@SELECT carname FROM PassedTest GROUP BY carname HAVING COUNT(DISTINCT testtype) = 4@H_404_5@

您还可以将其用作从汽车表中获取信息的内部声明:

@H_301_4@SELECT * FROM cars WHERE carname IN ( SELECT carname FROM PassedTest GROUP BY carname HAVING COUNT(DISTINCT testtype) = 4 )@H_404_5@
原文链接:https://www.f2er.com/mssql/84242.html

猜你在找的MsSQL相关文章