Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL中具有distinct和max的查询_Mysql - Fatal编程技术网

Mysql SQL中具有distinct和max的查询

Mysql SQL中具有distinct和max的查询,mysql,Mysql,我需要一个mysql查询,它将选择在name或quantity列中包含joe的所有行。名称和数量列之间需要区分,这意味着我们将获得与每个名称对应的数量的最大值,如下图所示: 最后一个表也应该按id降序排序。 请告诉我如何使用mysql查询。 谢谢最简单的方法就是使用“不存在” 在什么情况下字符串会出现在整数列中?最快的方法是。。。选项3左侧联接的性能优于索引列时的性能。但是,优化器可以对一小部分数据进行优化,当您的表相对较小且已编制索引时,它们之间没有差异。如果你知道一个更好更快的方法,为什么

我需要一个mysql查询,它将选择在name或quantity列中包含joe的所有行。名称和数量列之间需要区分,这意味着我们将获得与每个名称对应的数量的最大值,如下图所示:

最后一个表也应该按id降序排序。 请告诉我如何使用mysql查询。
谢谢

最简单的方法就是使用“不存在”


在什么情况下字符串会出现在整数列中?最快的方法是。。。选项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;