选择与列表中的所有项目匹配的行组

假设我有两个表:


cars –汽车清单


carname | modelnumber | ...

passedtest –包含汽车通过的所有测试:


id | carname | testtype | date | ...

1  | carA    | A        | 2000 |

2  | carB    | C        | 2000 |

3  | carC    | D        | 2001 |

4  | carA    | C        | 2002 |

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


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


守候你守候我
浏览 407回答 3
3回答

慕尼黑8549860

这个怎么样?SELECT carnameFROM PassedTestGROUP BY carnameHAVING COUNT(DISTINCT testtype) = 4您还可以将其用作从cars表中获取信息的内部语句:SELECT *FROM carsWHERE carname IN (    SELECT carname    FROM PassedTest    GROUP BY carname    HAVING COUNT(DISTINCT testtype) = 4)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server