Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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_Join_Sum_Left Join - Fatal编程技术网

Mysql 多个左连接导致错误的和

Mysql 多个左连接导致错误的和,mysql,join,sum,left-join,Mysql,Join,Sum,Left Join,我有一个MySQL数据库,在那里我存储了船上的员工和他们的工作经验。我得到了一张表,用于存储员工,一张表用于存储他们以前在运输部门的工作(工作类型,年份),另一张表用于存储他们以前的其他工作(工作类型,年份)。所有这些都使用员工的ID进行连接。当我抓到一个员工时,我希望得到他的运输和一般经验的总和,但是select查询返回的一般经验的总和是错误的。我知道这是由多个连接造成的,因为表没有正确连接,但我不确定如何修复这一问题。你能帮帮我吗 另外,我想用一个查询来完成这个任务 我使用的查询示例 SEL

我有一个MySQL数据库,在那里我存储了船上的员工和他们的工作经验。我得到了一张表,用于存储员工,一张表用于存储他们以前在运输部门的工作(工作类型,年份),另一张表用于存储他们以前的其他工作(工作类型,年份)。所有这些都使用员工的ID进行连接。当我抓到一个员工时,我希望得到他的运输和一般经验的总和,但是select查询返回的一般经验的总和是错误的。我知道这是由多个连接造成的,因为表没有正确连接,但我不确定如何修复这一问题。你能帮帮我吗

另外,我想用一个查询来完成这个任务

我使用的查询示例

SELECT id , name , SUM( s_exp.years ) , SUM ( g_exp.years ) 
FROM employees
LEFT JOIN s_exp ON employees.id = s_exp.id ,
LEFT JOIN g_exp ON employees.id = g_exp.id
GROUP BY employees.id

也许是这样的:

SELECT id , name , 
(
    SELECT
        SUM(s_exp.years)
    FROM
        s_exp
    WHERE
        employees.id = s_exp.id
) AS s_total_years,
(
    SELECT
        SUM(g_exp.years)
    FROM
        g_exp
    WHERE
        employees.id = g_exp.id
) AS g_total_years,
FROM employees

我已经对它进行了测试,它运行良好,如果它适合你的答案,你可以检查它。你可以从你的标题中删除“left”这个词-完全有可能从内部联接中得到相同类型的错误。
Select id, sum(g_exp.years) GE, sum(s_exp.years) SE 
From s_exp Natural Join g_exp 
Where id = (Select id From employee Where name = ?)
group by id