2016-11-07 73 views
3

我需要更新TableB中的值,但共用字段中的數據不完全相同。這是我到目前爲止如何用另一個表但不共用字段更新表

UPDATE TableB (`value`) SET (value * rate) 

| TableA | 
Rate t 
2 2001 
3 2002 
4 2003 

| TableB | 
value t 
1  2001-1 
2  2001-2 
3  2001-3 
1  2002-1 
2  2002-2 
3  2002-3 
1  2003-1 
2  2003-2 
3  2003-3 

結果試了(對不起,我沒有仔細檢查我的數據)

| TableB | 
value t 
2  2001-1 
4  2001-2 
6  2001-3 
3  2002-1 
6  2002-2 
9  2002-3 
4  2003-1 
8  2003-2 
12  2003-3 
+0

這是一次性工作嗎? – 1000111

+0

雅,我想讓它成爲一次性工作,但任何解決方案都會受到歡迎, – peter

+0

您的預期輸出會讓我困惑。你能解釋一下嗎? – 1000111

回答

0

你可以試試這個

TRIM(SUBSTRING_INDEX(TableB.t,'-',1)) 

您的查詢

UPDATE TableB JOIN TableA ON TableA.t =  
TRIM(SUBSTRING_INDEX(TableB.t,'-',1))SET TableB.value= TableB.value * TableA.rate 
相關問題