加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2021-03-31 08:06:33 所属栏目:MsSql教程 来源:网络整理
导读:假设我有两个表: 汽车 – 汽车清单 carname | modelnumber | ... passtest – 包含汽车通过的每项测试: id | carname | testtype | date | ...1 | carA | A | 2000 |2 | carB | C | 2000 |3 | carC | D | 2001 |4 | carA | C | 2002 | 现在,如何从通过所有

假设我有两个表:

汽车 – 汽车清单

carname | modelnumber | ...

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

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

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

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

解决方法

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

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

SELECT *
FROM cars
WHERE carname IN (
    SELECT carname
    FROM PassedTest
    GROUP BY carname
    HAVING COUNT(DISTINCT testtype) = 4
)

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读