Table 1
Name, Vehicle
P1, Car
P1, Motorcylce
P1, Truck
P1, Helicopter
P2, Car
P3, Motorcycle
P4, Motorcycle
P4, Car
P5, Car
P5, Truck
P6, Motorcycle
P6, Truck
P7 Truck
如何查询上表,以便仅返回拥有汽车或摩托车或必须同时拥有汽车和摩托车的人。
所以 仅,
P2 -> only has a car (valid)
P3 -> only has a motorcyle (valid)
P4 -> has both car and motorcycle (valid)
被退回
最佳答案
这是一种条件聚合
的方法:
select name
from yourtable
group by name
having count(case when vehicle = 'Car' then 1
when vehicle = 'Motorcycle' then 1
end) = count(*)
如果您不想返回拥有多于一辆汽车或摩托车的人员(即 P8 有 2 辆汽车),请使用 count(distinctvehicle)
来排除这些记录。不清楚您的帖子是否重要。
关于mysql - 返回仅拥有汽车、摩托车或汽车和摩托车的人员列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50974544/