【发布时间】:2016-04-09 03:09:34
【问题描述】:
我有一个产品数据库,与车辆品牌和型号相关联。
我有产品的参考资料和该产品可以运行的型号。在网络上,我选择了一些模型,我选择了一个模型,查询的类型是:
SELECT * FROM {tables - relationships among tables } WHERE [...] model = 125
现在,如果在选择字段中我允许进行多次检查,我会有类似的东西
SELECT * FROM {tables - relationships among tables } WHERE [...] model IN (125, 126, 127)
这还好。会退回适用于125或126或127型号的产品。一个产品可用于125和126,其他产品只能用于127等。
现在,如果我想要只能在所有三个选定型号中使用的产品,即 125 和 126 和 127,我很困惑,不知道该怎么做,因为 IN 运算符将返回与第二个例子。
是否需要考虑一些 GROUP BY 操作?
【问题讨论】:
-
GROUP BY {product} HAVING COUNT(DISTINCT model) = 3(如果model必须不同,您可以省略该关键字以节省额外的排序操作)。 -
非常感谢,现在看来很合乎逻辑。 :)
标签: mysql sql group-by operator-keyword