Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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字符串不能工作吗?_Mysql_Sql_Oracle_Join - Fatal编程技术网

Mysql 为什么赢了';这个SQL字符串不能工作吗?

Mysql 为什么赢了';这个SQL字符串不能工作吗?,mysql,sql,oracle,join,Mysql,Sql,Oracle,Join,我必须得到一份所有职位的名单和在那里工作的人的工资总额 我用这个得到了: SELECT j.job_title, SUM(e.salary) FROM jobs j LEFT JOIN employees e ON e.job_id = j.job_id GROUP BY j.job_title; 好吧,但现在我要得到同样的名单,但也考虑到这个城市 它不起作用…:/ SELECT j.job_title, SUM(e.salary), d.department_id, l.city FROM

我必须得到一份所有职位的名单和在那里工作的人的工资总额

我用这个得到了:

SELECT j.job_title, SUM(e.salary)
FROM jobs j LEFT JOIN employees e ON e.job_id = j.job_id
GROUP BY j.job_title;
好吧,但现在我要得到同样的名单,但也考虑到这个城市

它不起作用…:/

SELECT j.job_title, SUM(e.salary), d.department_id, l.city
FROM departments d LEFT JOIN employees e ON e.department_id = d.department_id LEFT JOIN locations l 
ON l.location_id = d.location_id LEFT JOIN jobs j ON e.job_id = j.job_id 
GROUP BY l.city;     

为什么会这样

我认为你只需按部门id和职位进行分组即可:

GROUP BY j.job_title, d.department_id, l.city;

我认为你只需按部门id和职务进行分组:

GROUP BY j.job_title, d.department_id, l.city;

您需要按非聚合列进行分组

...
group by job_title, department_id, city
您还可以通过以下方式使用组中的列位置:

group by 1, 3, 4

您需要按非聚合列进行分组

...
group by job_title, department_id, city
您还可以通过以下方式使用组中的列位置:

group by 1, 3, 4

您还需要在group by子句中添加以下列:
j.job\u title
d.department\u id
l.city

SELECT..
FROM...
GROUP BY j.job_title, d.department_id, l.city

非聚合列必须包含在分组依据子句中。

您还需要在分组依据子句中添加这些列:
j.job\u title
d.department\u id
l.city

SELECT..
FROM...
GROUP BY j.job_title, d.department_id, l.city

非聚合列必须包含在
GROUP BY
子句中。

您仅按l.city分组,但在select语句中,您使用的是j.job_title,d.department_id,因此为了获取这些值,您必须使用

group by job_title, department_id, city

您仅按l.city分组,但在select语句中,您使用的是j.job\u title、d.department\u id,因此为了获取这些值,您必须使用

group by job_title, department_id, city

你的最后一句话对mysql一般来说是不正确的,但对这个是正确的case@Bohemian如果通过将
ONLY\u FULL\u GROUP\u BY
模式变量添加到
SQL\u mode
system variable.Cool中来防止GROUP BY子句的默认行为,则为真。谢谢你的信息-我不知道那面旗帜。Cheers+1它现在显示的是无意义的东西:S但是谢谢,现在的问题是关于sql本身而不是分组。@user1880778帮助我们解决问题的最好方法是添加示例记录,并希望得到您的问题的结果
:D
您的最后一句话对于mysql通常不正确,但是对于这个case@Bohemian如果通过将
ONLY\u FULL\u GROUP\u BY
模式变量添加到
SQL\u mode
system variable.Cool中来防止GROUP BY子句的默认行为,则为真。谢谢你的信息-我不知道那面旗帜。Cheers+1它现在显示的是无意义的东西:S但是谢谢,现在的问题是关于sql本身而不是分组。@user1880778帮助我们解决问题的最好方法是添加示例记录,并希望得到您的问题的结果<代码>:D也许你可以尝试
内部连接
。也许你可以尝试
内部连接