在 SQL 查询中使用 IN 运算符

The use of IN operator in a SQL query

我有一个产品数据库,与车辆的品牌和型号相关联。

我有产品的参考资料和该产品可以运行的型号。在网络中,我有 select 个模型,我 select 一个模型,查询的类型为:

SELECT * FROM {tables - relationships among tables } WHERE [...] model = 125

现在,如果在 select 字段中允许进行多次检查,我会得到类似

的东西
SELECT * FROM {tables - relationships among tables } WHERE [...] model IN (125, 126, 127)

这个可以。它将return返回可应用于125或126或127型号的产品。一个产品可以用于125和126,其他产品只能用于127等。

现在如果我想要的产品只能用于所有三种型号 selected,即 125、126 和 127,我很困惑,不知道我该怎么做,因为 IN运算符将 return 与第二个示例中的相同。

是否需要考虑一些 GROUP BY 操作?

根据用户eggyal的建议(见上面的评论),我试过了

SELECT * FROM {tables - relationships among tables } WHERE [...] model IN (125, 126, 127) GROUP BY {product} HAVING COUNT(DISTINCT model) = 3

成功。