MySQL UPDATE столбцы таблицы на основе значений в других таблицах

0

Мне нужно обновить значения столбцов в таблице на основе значений в других таблицах. Это то, что у меня есть:

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.

Может ли кто-нибудь помочь?

Теги:
sql-update
temp-tables

1 ответ

0
Лучший ответ

Я считаю, что что-то в этом направлении будет работать для вас (используя 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
  • 0
    Спасибо, Джейми, но твой ответ не кажется синтаксически правильным (я знаю, ты сказал «что-то вроде»)
  • 0
    @JeffR обновил синтаксис. Вариантов синтаксиса в реляционных базах данных так много, что мне всегда кажется, что я все перепутал. Дайте мне знать, если это работает.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню