[英]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.