簡體   English   中英

多個左連接導致錯誤總和

[英]Multiple Left Joins cause Wrong Sum

我有一個MySQL數據庫,我可以存儲船員和他們的工作經驗。 我有一張桌子用於存放員工,一張桌子用於存放他們以前的工作在運輸部門(工作類型,年份),另一張桌子用於存儲他們以前的其他工作(滾刀類型,年份)。 所有這些都使用員工的ID進行連接。 當我找到一名員工時,我想得到他的運費和一般經驗的總和,但是選擇查詢會返回錯誤的總和。 我知道這是由多個連接引起的,因為表沒有正確連接,但我不知道如何解決這個問題。 請你幫助我好嗎?

PS我想用一個查詢來做這件事。

我使用的查詢示例

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
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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM