[英]Sql join, extract value from the second table and add it to the first one
我在Mysql中有2個表。 我需要以某種方式將它們加入,以從第二個表中獲取一個值到第一個表中。
表格1
Day EmployeeId Total EmployeeName
1 2 20 Josh
1 1 20 Mike
2 2 5 Josh
2 1 10 Mike
3 3 5 Eric
表2
Day EmployeeId Max_Total
1 2 40
1 1 40
2 2 5
2 1 15
我需要得到類似表3的內容
Day EmployeeId Total EmployeeName Max_Total
1 2 20 Josh 40
1 1 20 Mike 40
2 2 5 Josh 5
2 1 10 Mike 15
3 3 5 Eric null
因此,需要以某種方式創建和填充此Max_Total列。 這個Day_EmployedId組合在兩個表中都是唯一的,應該以某種方式從第二個表中提取值並將其添加到第一個表中。
有時第一個表可以具有更多的值,有時第二個表可以具有更多的值,但是第一個表將始終是需要操縱/添加的值。
任何提示將不勝感激。 謝謝
您正在兩個字段上尋找left join
:
select t1.*, t2.max_total
from table1 t1 left join
table2 t2
on t1.day = t2.day and t1.employeeid = t2.employeeid;
我不建議實際更新table1
。 您可以根據需要生成數據。 但是,為了使更新生效,您需要先在表中添加一列,然后再對其進行更新。
您需要分離任務。
Table1
以添加列Max_Total
UPDATE
查詢以更新Table1
的Max_Total
。 查詢:
UPDATE t1.Max_Total = t2.Max_Total
SET t1.
FROM Table1 t1
JOIN Table2 t2 ON t1.Day = t2.Day AND t1.EmployeeId = t2.EmployeeId
如果您只在意獲取組合結果集
SELECT t1.Day, t1.EmployeeId, t1.Total, t1.EmployeeName, t2.Max_Total
FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.Day = t2.Day AND t1.EmployeeId = t2.EmployeeId
有關LEFT JOIN
更多信息,您可以學習本教程 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.