Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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 从多个最小值返回当前位置_Mysql_Sql - Fatal编程技术网

Mysql 从多个最小值返回当前位置

Mysql 从多个最小值返回当前位置,mysql,sql,Mysql,Sql,我有4张表格,包括教育程度、个人信息、当前位置和收入。教育与个人信息相关联,个人信息与当前位置相关联。不要问为什么,老DB。收入也与个人信息有关 我试图确定教育程度最低但收入最高的人目前居住在哪里。问题是,我有大约30人的教育水平最低,收入水平也相同 目前的代码如下: select p.name, min(e.level), max(i.income), l.city from education as e join person_d

我有4张表格,包括教育程度、个人信息、当前位置和收入。教育与个人信息相关联,个人信息与当前位置相关联。不要问为什么,老DB。收入也与个人信息有关

我试图确定教育程度最低但收入最高的人目前居住在哪里。问题是,我有大约30人的教育水平最低,收入水平也相同

目前的代码如下:

select  p.name,
        min(e.level),
        max(i.income),
        l.city
from    education as e
join    person_det as p
on      e.person_ID = p.ID
join    location as l
on      p.CityID = l.CityID
join    income as i
on      p.job_ID = i.job_id
Order by e.level ASC, i.income DESC;
然而,这似乎只返回一个人,而不是我需要的所有人


有没有关于如何使用多个标准的建议?

由于mine.level0,您只能得到一个答案。您可以尝试按e.level ASC,即income DESC对列表进行排序,并查看前几个项目

否则,我认为您需要使用嵌套查询。内部查询将确定mine.level,外部查询将查找与min_e匹配的记录,按i.income DESC排序。除了最大i.income外,很难打印其他信息

试着这样做:

select p.name, e.level, i.income, l.city
from person as p
join education as e on e.person_ID=p.ID
join income as i on p.job_ID=i.job_id
join location as l on p.CityID=l.CityID
where e.level = (select min(level) from education)
order by i.income DESC;

您的查询没有分组依据。我建议您尝试在ORDER BY之前按p.name、l.city添加GROUP,并删除分号;in on p.job\u ID=i.job\u ID;。有没有关于如何编写嵌套查询的建议?