2016-08-16 10 views
0

私はMysqlに2つのテーブルを持っています。私は何とか2番目のテーブルから1番目のテーブルに1つの値を取得するためにそれらに参加する必要があります。Sql join、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   

私はこのMax_Total列が何らかの形で作成して移入する必要が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 

TABLEのようなものを取得する必要があります。 このDay_EmployedIdの組み合わせは、両方のテーブルで一意であり、それは何とか2番目のテーブルから値を抽出して最初のテーブルに追加する必要があります。

時には最初のテーブルに複数の値を持たせることもできますが、2番目のテーブルには操作/追加する必要があるテーブルもあります。

ご了承ください。あなたはleft join 2のフィールドを探しているおかげで

+0

あなたの懸念を分けてください!まず、テーブルを変更して必要な列を追加します。 2番目のステップは、必要なファイルを公開するJOINを作成し、マスターテーブルを更新することです – techspider

+0

[UPDATEクエリで3つのテーブルJOINを実行する方法は?](http://stackoverflow.com/questions/15209414/how-to- do-3-table-join-in-update-query) –

+0

@techspider:私はテーブルを変更する必要はありません。私は結果セットに興味があり、結合やストアドプロシージャなどから来ています。新しい列を追加することが可能かどうかはわかりません。 – tito

答えて

2

select t1.*, t2.max_total 
from table1 t1 left join 
    table2 t2 
    on t1.day = t2.day and t1.employeeid = t2.employeeid; 

私はtable1を更新し、実際にお勧めしません。必要に応じてデータを生成することができます。ただし、更新が機能するようにするには、最初にテーブルに列を追加して更新する必要があります。

+0

Wowを使うことができます。それはうまくいった。それと同じくらい簡単です。私はこれで数時間苦労してきました。とにかくたくさんありがとう。 – tito

1

タスクを分ける必要があります。

  1. あなたTable1であなたのMax_Totalを更新するUPDATEクエリを書く欄Max_Total
  2. を追加するために、あなたのTable1を変更します。

問合せ:あなただけの組み合わせ結果はLEFT JOINの詳細については

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 

を設定し得ることについて懸念がある場合

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 

、あなたはthis tutorialを学ぶことができます。

+0

ご協力いただきありがとうございます。ゴードンは彼の答えで少し速かった。あなたの2番目のステートメントはまさに私が必要としたものです。 – tito

関連する問題