2016-11-07 46 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 
相关问题