2016-11-07 3 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

ya, я хочу сделать это на один рабочий день, но любые решения будут приветствоваться, – 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 
Смежные вопросы