Mysql SQL中具有distinct和max的查询
我需要一个mysql查询,它将选择在name或quantity列中包含joe的所有行。名称和数量列之间需要区分,这意味着我们将获得与每个名称对应的数量的最大值,如下图所示: 最后一个表也应该按id降序排序。 请告诉我如何使用mysql查询。Mysql SQL中具有distinct和max的查询,mysql,Mysql,我需要一个mysql查询,它将选择在name或quantity列中包含joe的所有行。名称和数量列之间需要区分,这意味着我们将获得与每个名称对应的数量的最大值,如下图所示: 最后一个表也应该按id降序排序。 请告诉我如何使用mysql查询。 谢谢最简单的方法就是使用“不存在” 在什么情况下字符串会出现在整数列中?最快的方法是。。。选项3左侧联接的性能优于索引列时的性能。但是,优化器可以对一小部分数据进行优化,当您的表相对较小且已编制索引时,它们之间没有差异。如果你知道一个更好更快的方法,为什么
谢谢最简单的方法就是使用“不存在”
在什么情况下字符串会出现在整数列中?最快的方法是。。。选项3左侧联接的性能优于索引列时的性能。但是,优化器可以对一小部分数据进行优化,当您的表相对较小且已编制索引时,它们之间没有差异。如果你知道一个更好更快的方法,为什么不把它作为答案而不是评论呢?因为在电话上打字很乏味,我想你可能知道我所指的方法。手册中毕竟有介绍。我不确定您所指的方法是选择t1.*从测试t1连接选择名称,maxquantity作为测试组中的数量,按名称t2在t1.name=t2.name和t1.quantity=t2.quantity?如果是的话,我很抱歉它使用了派生的选择类型,而且它在使用索引时并不好。
select * from table_name t1
where
not exists (
select 1 from table_name t2 where t1.name= t2.name and t1.quantity < t2.quantity
);
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;