我需要一个mysql查询,它将选择包含" joe"的所有行。在"名称"或"数量"柱。它需要在" name"中区别开来。和"数量"列,这意味着我们将获得与每个名称相对应的数量的最大值,如下图所示:
最终表也应按id降序排序。 请告诉我使用mysql查询的方法。 感谢
答案 0 :(得分:0)
最简单的方法是使用not exists
select * from table_name t1
where
not exists (
select 1 from table_name t2 where t1.name= t2.name and t1.quantity < t2.quantity
);
另一种变体是使用left join
select t1.* from table_name t1
left join table_name t2 on t2.name = t1.name
and t1.quantity < t2.quantity
where t2.id is null;