Мне нужно обновить значения столбцов в таблице на основе значений в других таблицах. Это то, что у меня есть:
TABLE_A
| ---------------- |
| id | val |
| ---------------- |
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | a |
| 5 | b |
| 6 | c |
| ---------------- |
ВРЕМЕННЫЙ TABLE_B
| ---------------- |
| id | val |
| ---------------- |
| 4 | a |
| 5 | b |
| 6 | c |
| ---------------- |
ВРЕМЕННЫЙ ТАБЛИЦА_C
| ---------------------------- |
| id | val1 | val2 |
| ---------------------------- |
| h | 4 | b |
| k | 4 | e |
| n | 5 | a |
| o | 6 | c |
| p | 6 | d |
| q | 5 | g |
| ---------------------------- |
Я хочу сделать следующее:
Для каждой строки в таблице_a где (table_a.id = table_b.id), тогда
где (table_a.val = table_c.val2) установить table_a.val = table_c.id
Кажется, я не могу написать правильный оператор UPDATE.
Может ли кто-нибудь помочь?
Я считаю, что что-то в этом направлении будет работать для вас (используя INNER JOIN)
UPDATE table_a A
INNER JOIN table_b B ON A.id = B.id
INNER JOIN table_c C ON A.val = C.val2
SET A.val = C.id