如何使mysql要求选择所有值,其中包含列表的所有元素。
我有这样的表:
+--------+------------+
| carID | serviceID |
+--------+------------+
| 1 | 12 |
+--------+------------+
| 1 | 13 |
+--------+------------+
| 1 | 15 |
+--------+------------+
| 2 | 12 |
+--------+------------+
| 3 | 13 |
+--------+------------+
| 3 | 15 |
+--------+------------+
我提出这样的要求:
SELECT `carID` FROM `car_services` WHERE `carID` in (1, 2, 3) AND `serviceID` in (12, 13, 15);
但它会返回所有车,但是我只需要带有
carID = 1
的车,因为只有这辆车适合这种情况(支持所有服务12、13、15)。有任何想法吗?
最佳答案
一种简单的方法是group by
和having
SELECT `carID`
FROM `car_services`
WHERE `carID` in (1, 2, 3) AND `serviceID` in (12, 13, 15)
group by carID
having count(*) = 3
;
关于mysql - mysql选择与列表中所有元素一致的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30732249/