在 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
成功。
我有一个产品数据库,与车辆的品牌和型号相关联。
我有产品的参考资料和该产品可以运行的型号。在网络中,我有 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
成功。